INT 21H終端部分功能號

2021-10-10 02:59:23 字數 2718 閱讀 9580

;程式名:

a1.asm

;功 能:

1. 輸入乙個字元,顯示輸出, 並轉化為二進位製碼再輸出

;2. 輸入乙個字串,

mlength

=128

data

segment

mess1

db'input key:$'

mess0

db'please input:$'

mess2

db'input string:$'

mess3

db'string :$'

buff

dbmlengthdb?

dbmlength

dup(0)

data

ends

code

segment

assumecs:

code,ds

:data

start

:movax,

data

movds,ax

movdx

,offset

mess0

call

dismess

movah,1

;1號功能,讀入乙個字元

int21h call

newline

;回車換行

movdx,

offset

mess1

call

dismess

movah,2

;2號功能是顯示乙個字元

movdl,

alint

21h call

newline

;回車換行\

movbl,

almovcx,

8;8位next

:shlbl,

1;依次析出高位

movdl,

30h adcdl,

0movah,

2int

21h ;顯示

loop

next

;迴圈8次

movdl,

'b'movah,

2int

21h call

newline

;回車換行

movdx,

offset

mess2

call

dismess

call

newline

;回車換行

movdx,

offset

buff

movah,0

ahint

21h movbh,

0;movbl

,buff+1

;初始化bx

,把buff 第二位元組 串的大小給bx

movbyte

ptrbuff[bx

+2],

'$';將buff 串緩衝區的最後乙個字元'回車'改為'$'

movdh,0

;movdl,

buff+2

;將串的位址給dx作為引數給9號功能使用

call

newline

;回車換行

movdx,

offset

mess3

call

dismess

movdx

,offset

buff+2

call

dismess

movah,4

chint

21h;

;子程式名:

newline

;功 能: 形成回車和換行

;入口引數: 無

;出口引數: 無

;說 明: 通過顯示回車符形成回車,通過顯示換行符形成換行

newline

proc

push

axpush

dxmovdl,

0dh;回車符的ascii碼是0

ahmovah,

2;顯示回車符

int21h movdl,

0ah;換行符的ascii碼是0

ahmovah,

2;顯示換行符

int21h

popdxpop

axret

newline

endp

;子程式名: delay

;功 能: 做延遲處理

;出入引數: 無

delay

proc

push

axpush

dxmovdx,

10h xorax,

axs:

subax,1

sbbdx,0

cmpax,0

jne s

cmpdx,

0jne s

send

:pop

dxpop

axret

delay

endp

;子程式名:

dismess

;功 能: 用來顯示串

;入口引數:

dx為串首位址

dismess

proc

movah,9

int21h

retdismess

endp

code

ends

endstart

彙編 DOS系統功能呼叫 INT 21H

最近又聽了聽彙編的課程,發現 裡的mov xx int 21h,老師都是一句話帶過,而不講講其中的原因 也可能前面講了我沒有聽qaq 讓我們言歸正傳,這些 都是啥意思呢?mov ah,4ch int 21h 這,奇妙的搭配,神奇的組合,是什麼意思呢?實際上這些是由dos提供的一組實現特殊功能的子程式...

INT21H的0Ah號功能實現原理

int21h的0ah號功能實現原理 assume cs code,ds data data segment string db 0dh,0ah,press any kry to exit.buffer db 5,0,5 dup 0 data ends code segment start mov a...

8086的內中斷典型如int 21h的分析

ip n 4 cs n 4 2 assume cs code code segment start mov ax,8mov bx,0div bx mov ah,4chint 21hcode ends end start 從中斷資訊取得中斷型別碼 標誌暫存器的值入棧 中斷過程要改變標誌暫存器的值,需要...