彙編 顯示字串

2021-09-29 01:56:03 字數 1687 閱讀 1077

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的初始位址,...