追问下面程序段实现什么功能?在什么情况下,其执行结果是AH=0?
BEGIN:IN AL, 5FH
TEST AL,80H
JZ BRCH1
MOV AH, 0
JMP STOP
BRCH1 : MOV -AH,0FFH
STOP: HLT
BEGIN:IN AL, 5FH ;开始程序,将5F端口的值存入AL
TEST AL,80H ;测试AL是否为80H
JZ BRCH1 ;如果为80,跳转到BRCH1
MOV AH, 0 ;将AH存入0
JMP STOP ;跳转到STOP(暂停命令)
BRCH1 : MOV -AH,0FFH ;BRCH1:将ff存入AH
STOP: HLT ;暂停程序
很简单啊,当端口5F值不为80h的时候,AH不就为0了吗
TEST AL,80H ;测试AL是否为80H
JZ BRCH1 ;如果为80,跳转到BRCH1
MOV AH, 0 ;将AH存入0
JMP STOP ;跳转到STOP(暂停命令)
BRCH1 : MOV -AH,0FFH ;BRCH1:将ff存入AH
STOP: HLT ;暂停程序
很简单啊,当端口5F值不为80h的时候,AH不就为0了吗
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-06-29
80H是10000000,是1的地方对应的是第七位,TEST 80H意思是检测AX中的第七位,也就是最高位,是否为1,当为1时,标志寄存器ZF=0,也就是AL=0