请教会汇编的高手

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:52:16
二、写出下列程序的功能和结果
1、
MOV AH 08H
INT 21H
CMP AL,“R”
JNZ NEXT
MOV AH,4C
INT 21H

2、
POLL:IN AL,STATUS PORT
TEST AL,80H
JZPOLL
MOV AL,STORE
ORT DATA PORT ,AL

3、
MOV AL,DATA
AND AL,AL
JPE TRANS
OR AL,80H
TRANS:OUT(VART),AL

4、
MOV DL,BL
MOV AH,2
INT 21H
MOV DL,20H
MOV AH,2
INT 21H

三、试述CPU同意外设中断申请后,必须进行的处理工作。
1、关中断。2、保留断点。3、保护现场。4、给出中断入口,转入相应的中断服务程序。5、恢复现场。6、开中断与返回。
(1)试编写一段INTEL8251接收字符的程序段。
data51 equ 308h ;8251A数据口
ctr151 equ 309h ;8251A命令/状态口
receiv: mov dx,ctr151 ;接收数据
in al,dx
test al,02 ;接收数据准备好?RXRDY=1?
jz checkkey ;未准备好,即无数据接收,则转按键发送
mov dx,data51 ;已准备好,即有数据传送过来,则接收1个字符
in al,dx
mov dl,al ;显示接收的字符
m

二、写出下列程序的功能和结果
1、
MOV AH 08H ; 送08号功能,不带显示的键盘输入
INT 21H
CMP AL,“R” ;输入字符与大写字母R比较
JNZ NEXT ;不相同则跳转到NEXT
MOV AH,4C ;相等则结束程序返回dos
INT 21H

2、
POLL:IN AL,STATUS PORT ;将状态端口STATUS PORT 数据送al
TEST AL,80H ;测试AL的最高位是否为0
JZ POLL ;如为0,则跳转到poll,继续测试,直到为1为此(即状态为不忙或准备好)
MOV AL,STORE ;若不0,则将内存store数据送al
OUT DATA PORT ,AL ;将al送数据端口DATA PORT中

3、
MOV AL,DATA ;将DATA中数据送AL
AND AL,AL
JPE TRANS ;若AL中有偶数个1,则转移到TRANS
OR AL,80H ;否则将al与80h相或,即将AL最高位置1,其它位不变
TRANS:OUT(VART),AL ;将al数据送外设端口vart中

4、
蓝雨705答案正确

三、试述CPU同意外设中断申请后,必须进行的处理工作。
1、关中断。2、保留断点。3、保护现场。4、给出中断入口,转入相应的中断服务程序。5、恢复现场。6、开中断与返回。

上述6步完全正确

四、
(1)试编写一段INTEL8251接收字符的程序段。
data51 equ 308h ;8251A数据口
ctr151 equ 309h ;8251A命令/状态口
receiv: mov dx,ctr151 ;接收状态信息
in al,dx
test al,02 ;测试接收数据准备好?RXRDY=1?
jz checkkey ;未准备好,即无数据接收,则转按键发送