assume cs:code
data segment
db 'hello world!',0
data ends
code segment
start:
mov dh,8 ;行
mov dl,3 ;列
mov cl,3 ;顏色
mov ax,data
mov ds,ax ;資料暫存器
mov si,0 ;資料暫存器指標
call show_str ;呼叫子程式show_str
mov ax,4c00h
int 21h
show_str:
mov ax,0b800h ;視訊記憶體
mov es,ax
mov al,160 ;計算顯示位置
mul dh
mov dh,0
add ax,dx
mov di,ax
mov ch,0 ;存入顏色配置
mov ax,cx
s: mov ch,0
mov cl,[si] ;存入字元
jcxz ok ;檢驗是否為空
mov es:[di-1],cx
mov byte ptr es:[di],al
inc si ;資料暫存器指標後移一位
add di,2 ;視訊記憶體指標後移兩位
loop s
ok: ret ;return
code ends
end start
王爽《組合語言》實驗10 編寫子程式
前幾個實驗都沒記錄,實驗10想記錄一下!名稱 show str 功能 指定位置,指定顏色,顯示乙個以數字0結束的字串 引數 dh 行號,dl 列號,cl 顏色,ds si 字串 返回 無 ds si 字串首位址 dh行號 dl列號 cl顏色 暫存器均不會被修改 show str push es pu...
組合語言 子程式
舉例 子程式呼叫指令call 格式為 call 子程式名 call相當於jmp 子程式名 相當於 標號 子程式執行完返回到call下一句的語句執行 在子程式中用ret 返回 子程式名proc屬性 far,near 子程式名 endp 如果主程式是被執行的第乙個程式,屬性應為far 主程式 let0 ...
《組合語言》實驗 實驗
注意 db定義位元組型別變數,乙個位元組資料百佔1個位元組單度元,讀完乙個,偏移量加1 dw定義字型別變問量,乙個字資料佔2個位元組單元,讀完乙個,權偏移量加2 dd定義雙字型別變數版,乙個雙字資料佔4個位元組單元,讀完乙個,權偏移量加4 一開始用了乙個暫存器表示所有項,但是後來發現四個資料佔的位元...