【发布时间】:2016-12-03 10:02:56
【问题描述】:
我正在尝试在这种情况下进行汇编语言编程:
if age = 18 then write "You are of legal age"
else if age<18 then write "You are too young"
else write "You should be working now"
这是我有问题的地方:
mov ah,01h "This is the first digit"
int 21h
mov bl,al
mov ah,01h "This is the second'
int 21h
当我输入一个两位数时,AL 有两个不同的值。我将第一个值移动到BL 以保存它,但我不知道下一步该做什么。请问如何让它们组合起来,就像我输入“17”时一样,它将是17h。我读过我需要减去 30h 但这仅适用于 0-9。我不知道从 10 号开始该怎么做。我正在使用 Tasm。
希望有人可以帮助我。
【问题讨论】:
-
您真正应该做的是使用缓冲输入 (INT 21h; AH = 0Ah) 一次读取两个字符。这将比一次读取一个字符并将它们连接起来更容易实现,也更典型。
-
"...我输入“17”,它将是 17h" 你确定 h 后缀是正确的吗?文本“17”在 十进制 中转换为 17,但在 十六进制 中转换为 11h!