请将上述程序中从键盘读取一个字符的代码变为从键盘读取两个字符的代码
时间: 2024-02-25 17:55:28 浏览: 21
好的,以下是将从键盘读取一个字符的代码变为从键盘读取两个字符的代码:
```
ORG 100h ; 程序入口地址
MOV AH, 0 ; 设置 AH 为 0
INT 16h ; 从键盘读取一个字符
MOV BL, 0 ; BL 存储最小值
MOV BH, 0 ; BH 存储最大值
CMP AL, '0' ; 比较字符是否为数字
JB END ; 如果不是数字,跳转到 END
SUB AL, '0' ; 将字符转换为数字
MOV BL, AL ; 将 AL 存储的数字赋给 BL
MOV BH, AL ; 将 AL 存储的数字赋给 BH
AGAIN:
MOV AH, 0 ; 设置 AH 为 0
INT 16h ; 从键盘读取一个字符
CMP AL, '0' ; 比较字符是否为数字
JB END ; 如果不是数字,跳转到 END
SUB AL, '0' ; 将字符转换为数字
MOV CL, AL ; 将 AL 存储的数字赋给 CL
MOV AH, 0 ; 设置 AH 为 0
INT 16h ; 从键盘读取一个字符
CMP AL, '0' ; 比较字符是否为数字
JB END ; 如果不是数字,跳转到 END
SUB AL, '0' ; 将字符转换为数字
SHL CL, 4 ; 将 CL 左移 4 位
OR CL, AL ; 将 AL 存储的数字与 CL 合并
CMP CL, BL ; 比较 CL 和 BL 的大小
JB UPDATE_MIN ; 如果 CL 小于 BL,跳转到 UPDATE_MIN
CMP CL, BH ; 比较 CL 和 BH 的大小
JA UPDATE_MAX ; 如果 CL 大于 BH,跳转到 UPDATE_MAX
JMP AGAIN ; 如果 CL 在最大值和最小值之间,重新读取两个字符
UPDATE_MIN:
MOV BL, CL ; 更新最小值
JMP AGAIN
UPDATE_MAX:
MOV BH, CL ; 更新最大值
JMP AGAIN
END:
MOV DL, BL ; 将最小值存储在 DL 中
MOV AH, 2 ; 显示 DL
ADD DL, '0' ; 将数字转换为字符
INT 21h
MOV DL, ',' ; 显示逗号
MOV AH, 2
INT 21h
MOV DL, BH ; 将最大值存储在 DL 中
MOV AH, 2 ; 显示 DL
ADD DL, '0' ; 将数字转换为字符
INT 21h
MOV AH, 4Ch ; 退出程序
INT 21h
```
在这个新代码中,我们首先读取一个字符,然后读取另一个字符,并将它们合并成一个两位数。存储最小值和最大值的寄存器仍然是 BL 和 BH。