汇编语言 - 如何将两个输入的数字作为一个?

时间:2016-12-03 10:02:56

标签: assembly x86 tasm

我正在尝试使用这种条件进行汇编语言编程:

    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。

希望有人可以帮助我。

1 个答案:

答案 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,但我没有将第二个数字输入与任何东西相乘,因为它在一个地方。