关于8086汇编程序的一道问题,我对它提供的答案不明白。

2025-03-05 00:35:38
推荐回答(2个)
回答1:

假设K6、K3按下,即共有两个键,按下了。
输入的电路中,含有反相器,故输入进来的1,代表键盘按下了。
IN AL,20H ;AL = 01001000
MOV BL,AL ;BL = 01001000
MOV AL,00010000B
MOV CX,8 ;计划移动8次.
AGAIN:SHR BL,1 ;通过Cy的循环右移.
JNC NEXT ;Cy=0时,跳过去.
INC AL ;Cy=1时,加一.
NEXT: LOOP AGAIN
OUT 20H,AL ;显示出来2,即有两个键,按下了

回答2:

请看清图,有8个非门啊!所以检测到高电平才应加一。