;實現把一段內存中的一串確定長度的代碼打印出來,用02;
;注意行列號,萬一debug看到變化
;cls清屏
assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
;將data地址放入ds
start:
mov ax,data
mov ds,ax
;用es存放目標顯存的地址
mov ax,0b800h
mov es,ax
;用cx循環將寫入7個字母(開始可以嘗試先實現直接輸出一段)
mov di,0
mov dh,8 ;行號
mov dl,3 ;列數
call show_str
mov ax,4c00h
int 21h
show_str:
;mov bl,2
;si控制es,di控制ds
;es:bx指向顯存首地址,160*dh+dl*2
;把顏色c1賦值給al
;計算es的地址
; ;
mov ax,160 ;
mul dh ;
mov bx,ax ;bx=ax*160 ;
mov al,2 ;
mul dl ;
add ax,bx ;
mov bx,ax ;
;
s:
mov cl,[di];低位存字符,高位存屬性
mov ch,0 ;將cx高八位置爲0
jcxz ok
mov es:[bx],cl
mov ch,0c2h
mov es:[bx+1],ch
inc di
add bx,2
loop s
ok: ret
code ends
end start
王爽《彙編語言》實驗10:編寫子程序show_str
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.