我正在尝试使用这种条件进行汇编语言编程:
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”时一样,它将是17小时。我读过我需要减去30h,但这只适用于0-9。我无法弄清楚从10号开始做什么。我正在使用Tasm。
希望有人可以帮助我。
答案 0 :(得分:2)
要将两位数输入存储为一个,请尝试此
num db 0 ;declare a variable to store the two digit input
ten db 10 ;declare a variable that holds a value 10
mov ah,01h ;This is the first digit
int 21h
SUB al,48D ;subtract 48D
MUL ten ;multiply with 10 because this digit is in ten's place
mov num,al ;mov first digit input in num
mov ah,01h ;This is the second digit
int 21h
SUB al,48D
ADD num,al ;add second digit to num
现在,您的两位数字位于变量num
请注意,我将第一个数字输入乘以10,但我没有将第二个数字输入与任何东西相乘,因为它在一个地方。