dos功能呼叫
dos利用軟體中斷方式提供系統功能。
中斷呼叫指令是「int n」,其中n表示呼叫的中斷號、即中斷0~中斷255號。
dos系統呼叫一般有如下4個步驟:
(1)在ah暫存器中設定系統功能呼叫號
(2)在指定暫存器中設定入口引數
(3)用中斷呼叫指令(int n)執行功能呼叫
(4)根據出口引數分析功能呼叫執**況
dos功能呼叫的中斷號主要是21h,利用ah暫存器區別各個子功能。
子功能號
功能入口引數
出口引數
ah=01h
從標準輸入裝置輸入乙個字元
al=輸入字元的ascii碼
ah=02h
向標準輸出裝置輸出乙個字元
dl=字元的ascii碼
ah = 09h
顯示字串
ds:dx=緩衝區首址
ah = 4ch
帶返回碼的結束
al=程序返回碼
;顯示字串
.model small
.stack
.data
msg db 'hello,assembly!',13,10,'$';在dos需要利用'\r\n'使游標下一行首位置(回車換行)
.code
.startup
mov dx,offset msg
mov ah,9 ;//呼叫dos 9號功能號輸出字串,以$結束
int 21h
.exit
end
;利用庫函式顯示字串
include io.inc
.model small
.stack
.data
msg db 'hello,assembly!',13,10,0;在dos需要利用'\r\n'使游標下一行首位置(回車換行)
.code
.startup
mov ax,offset msg
call dispmsg ; 利用庫函式字串的結束符為0
.exit
end
;自己實現函式顯示字串
.model small
.stack
.data
msg db 'hello,assembly!',13,10,0;在dos需要利用'\r\n'使游標下一行首位置(回車換行)
.code
.startup
mov ax,offset msg
call dispmsg ;
.exit
dispmsg proc ;定義過程
;設定入口引數,以0結束
push ax
push bx
push dx ;儲存暫存器的內容
mov bx,ax
again:mov al,byte ptr [bx]
test al,al ;判斷al是否為0
jz ex
mov ah,2
mov dl,al
int 21h
inc bx
jmp again
ex: pop dx
pop bx
pop ax
retdispmsg endp;過程結束
end
8086CPU彙編 顯示字串
在第8行第5列以紅色字型顯示 welcome to masm assume ds data,cs code data segment db welcome to masm 0 data ends code segment start mov ax,data mov ds,ax mov si,0 在8...
170412 彙編 顯示字串的子程式
1625 5 王子昂 總結 2017年4月12日 連續第193天總結 a.組合語言實驗十30 b.子程式之一 給定行號 列號 字串和顏色,可以在程式中修改視訊記憶體來達到顯示字串的目的 如下 dh中儲存行號 0 24 dl中儲存列號 0 79 cl中儲存顏色,ds si指向字串的首位址 show s...
彙編 字串長度
眾所周知在字串變數定義之後立即利用位址計數器指標符號 string就得到字串長度。string db 你的字 len string equ string但可能有小夥伴直接就拿來用了,卻不知道為什麼 string就得到字串長度。其實 就是當前位址,string 就是當前位址減去string的初始位址,...