Assembly 如何在汇编语言中显示总和和乘积?
我试图用汇编语言显示所有的和和数和积数,但每当我试图得到积数时,它只是复制和数Assembly 如何在汇编语言中显示总和和乘积?,assembly,x86-16,Assembly,X86 16,我试图用汇编语言显示所有的和和数和积数,但每当我试图得到积数时,它只是复制和数 .model small .stack .data a1 db"1st Input: $" a2 db"2nd Input: $" a3 db"The Sum of numbers: $" a4 db"The product of 3 numbers: $" space db"
.model small
.stack
.data
a1 db"1st Input: $"
a2 db"2nd Input: $"
a3 db"The Sum of numbers: $"
a4 db"The product of 3 numbers: $"
space db" $"
.code
open:
mov ax, @data
mov ds, ax
mov ah, 9
mov dx, offset a1
int 21h
mov ah, 1
int 21h
mov ch, al
mov bh, al
mov ah, 9
mov dx, offset space
int 21h
mov ah, 9
mov dx, offset a2
int 21h
mov ah, 1
int 21h
mov cl,al
add ch, cl
sub ch, 48
mov al, cl
mul bh
mov ah, 9
mov dx, offset space
int 21h
mov ah, 9
mov dx, offset a3
int 21h
mov dl, ch
mov ah,2
int 21h
mov ah, 9
mov dx, offset space
int 21h
mov ah, 9
mov dx, offset a4
int 21h
mov dl, al
mov ah,2
int 21h
mov ah, 4ch
int 21h
end open
你的大部分代码都被打印的东西弄得乱七八糟。(如
space
与其他字符串没有明显的区别;您可以在其他字符串中放置空格或CR、LF。有时,一个字符带有int 21h
/ah=2
)。使用调试器检查寄存器值。并注释您的代码,这样其他人就不必浪费时间去弄清楚,在所有其他DOS调用之后,您的产品显然仍然应该在al
中。(不会的;有些是垃圾,我没有注意到任何代码可以处理整型->ASCII转换,即使是一位数的转换。)