assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0 ;ds:bx指向資料段起始位置
mov ax,0b800h
mov es,ax ;設定顯示記憶體空間的起始位置
mov si,64 ;設定字串在一行中的中間位置
mov cx,16 ;設定迴圈的次數為字串的長度
s: mov al,ds:[bx]
mov ah,20h ;設定第一行的開始位置和顏色
mov es:[si+6e0h],ax
mov ah,42h ;設定第二行的開始位置和顏色
mov es:[si+780h],ax
mov ah,71h ;設定第三行的開始位置和顏色
mov es:[si+820h],ax
inc bx ;設定字串的偏移
add si,2 ;設定下一次迴圈的寫入位置
loop s
mov ax,4c00h
int 21h
code ends
end start
assume cs:code,ds:data
data segment
db 'welcome to masm!',0
data ends
code segment
start: mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0 ;ds:si指向資料段首位址
call show_str
mov ax,4c00h
int 21h
show_str: mov ax,0b800h
mov es,ax ;es指向顯示記憶體空間的段位址
mov ax,160
dec dh
mul dh
mov dh,0
dec dl
add dl,dl
add ax,dx
mov di,ax ;設定di指向字串要顯示的偏移位址
mov ah,cl
show: mov cx,ds:[si]
jcxz ok ;設定在遇到字元0的時候退出
mov al,ds:[si]
mov es:[di],ax
add di,2
inc si
loop show
ok: retf
code ends
end start
組合語言實現功能(2)資料複製的實現
assume cs code code segment 做法一 mov cx,12 s mov ax,offffh 因為需要重複利用ax,所以需要迴圈設定 mov ds,ax mov dl,ds bx 將資料複製到dx的低8位中 mov ax,0020h mov ds,ax mov ds bx dl...
組合語言實現功能(1)用迴圈累加實現乘法
assume cs code code segment mov ax,2 add ax,ax 實現程式的返回 mov ax,4c00h int 21h code ends endassume cs code code segment mov ax,2 mov cx,11 設定迴圈次數,只需相加11次...
《組合語言》實驗4
1 程式設計,向記憶體0 200 0 23f依次傳送資料0 63。assume cs code code segment mov ax,20h mov ds,ax mov bx,0 mov cx,64s mov bx bl inc bx loop s mov ax,4c00h int21hcode ...