实验08 INT n 中断实验报告文档格式.docx
《实验08 INT n 中断实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《实验08 INT n 中断实验报告文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
向量号21h
功能号1
该功能是等待扫描从键盘上输入的一个字符,将其ASCII码保存在AL中,并将该字符自动回显CRT上。
2、显示以“$”结尾的字符串
功能号9
入口参数:
DS:
DX指向待显示的字符串的首地址
2)、思考题:
在屏幕上显示两行字符串,第一行是学号,第二行是姓名的拼音全拼。
提示,在ACSII码表中找换行符的ASCII码。
截图显示程序和运行结果
3、BIOS的字符串显示
向量号10h
功能号0eh
该中断的功能是在屏幕上显示AL中的字符串,待显示的字符要事先存入AL中。
3、读键盘
向量号16h
功能号0h
该中断的功能是在读取键盘输入的ASCII码,并存放在AL中。
1)使用COM模板,执行如下程序,观察AL中的内容
ORG100h
MOVAH,0;
selectsub-function.
int16h
RET
功能号1h
该中断的功能是
若按过键,则ZF=0,并读取键盘输入的ASCII码,并存放在AL中。
若没按过键,则ZF=1
三、实验步骤
四、实验运行结果:
该功能是等待扫描从键盘上输入的一个字符,将其ASCII码保存在AL中,并将该字符自动回显在CRT上。
1)、执行下列程序,观察结果
MOVAH,1;
int21h
运行结果是:
从键盘连续输入5个字符并显示,截图显示程序源代码和运行结果,如输入honey,显示如下
在显示器上显示“HOWAREYOU”
程序如下:
DSEGSEGMENT
D1DB‘HOWAREYOU’,’$’
DSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG
START:
MOVAX,DSEG
MOVDS,AX
MOVDX,OFFSETD1
MOVAH,9
INT21H
MOVAH,4CH
CSEGENDS
ENDSTART
运行结果:
#MAKE_COM#;
instructcompilertomakeCOMfile.
;
Thesub-functionthatweareusing
doesnotmodifytheAHregisteron
return,sowemaysetitonlyonce.
MOVAH,0Eh;
INT10h/0Ehsub-function
receivesanASCIIcodeofthe
characterthatwillbeprinted
inALregister.
MOVAL,'
H'
;
ASCIIcode:
72
INT10h;
printit!
e'
101
l'
108
o'
111
!
'
33
RET;
returnstooperatingsystem.
输入的是a
若没按过键,则ZF=1
输入的是b
运行结果是
五、思考题解答
1.编写程序,在显示器上显示你的姓名,换行
等待键盘输入一个字符,若输入的是“Y”,则显示“WELCOME”+你的姓名
若输入的是“N”,则显示“SORRY”+你的姓名
(可参考P155例4.46,但Emu8086不支持DOS中断的8号功能。
)
DSEGMENT
D1DB'
JIANGSHANSHAN'
0DH,0AH,'
$'
D2DB'
WELCOME+JIANGSHANSHAN'
D3DB'
SORRY+JIANGSHANSHAN'
DENDS
CSEGMENT
ASSUMECS:
C,DS:
D
BG:
MOVAX,D
MOVDS,AX
MOVDX,OFFSETD1
MOVAH,9
INT21H
MOVAH,1
CMPAL,'
Y'
JNENEXT1
LEADX,D2
NEXT1:
CMPAL,'
N'
JNENEXT2
LEADX,D3
NEXT2:
MOVAH,4CH
CENDS
ENDBG
2、DOS中断的0AH号功能是从键盘读取字符串(连续读取多个字符)
参考P155-P166和例题4.47,编写如下功能的程序
在显示器上显示“INPUTPASSWORD”
随后从键盘读入字符串,若该字符串是自己的学号,则在屏幕上换行显示自己的学号
如果从键盘输入的不是自己的学号,则在屏幕上显示:
“YOURPASSWORDISERROR”
DSEGMENT'
DATA'
INPUTPASSWORD'
PASS2DB9
DB?
DB9DUP(?
11540088'
NEQU8
YOURPASSWORDISERROR'
CSEGMENT'
CODE'
C,DS:
D
MOVAX,D
MOVDS,AX
MOVES,AX
MOVDX,OFFSETD1
MOVAH,9
LEADX,PASS2
MOVAH,0AH
LEASI,D2
LEADI,PASS2
CMPBYTEPTR[DI+1],N
MOVCX,N
LEADI,PASS2+2
CLD
REPZCMPSB
JZDISOK
LEADX,D3
JMPNEXT2
DISOK:
LEADX,D2
MOVAH,4CH