0
我是新来的汇编程序,我不确定这个小程序出了什么问题。它所做的只是一个+ b * c。该计划与tasm,tlink和一切工作。它甚至表明我给a,b,c赋值,但结果就像是50行符号......我没有明白。汇编程序不工作错误结果
dosseg
.model small
.stack
.data
mesaj_a db 13,10,' Introduceti numarul a:$'
mesaj_b db 13,10,' Introduceti numarul b:$'
mesaj_c db 13,10,' Introduceti numarul c:$'
afis_rez db 13,10,' Rezultat:$'
.code
pstart:
mov ax,@data
mov ds,ax
;--------------
mov dx, offset mesaj_a
mov ah,09
int 21h
mov ah, 0ah
int 21h
mov bx,ax
;----------------
mov dx, offset mesaj_b
mov ah,09
int 21h
mov ah, 0ah
int 21h
mov cx,ax
;----------------
mov dx, offset mesaj_c
mov ah,09
int 21h
mov ah, 0ah
int 21h
;---------------
mul cx
add ax,bx
mov bx,ax
;---------------
mov dx, offset afis_rez
mov ah,09
int 21h
mov dx,bx
int 21h
;---------------
mov ax, 4ch
int 21h
end pstart
您只需将'dx'设置为打印值即可打印数字。您需要将其转换为字符串。 'dx'包含要打印的消息的* offset *,如'mov dx,offset afis_rez'。因此,底部附近的'mov dx,bx'和'int 21h'对将打印您计算'bx'的偏移处的内存中的任何字符。 –
对于**阅读**数量也是如此 - 请参阅http://spike.scu.edu.au/~barry/interrupts.html#ah0a'0ah'作为输入的期望函数并作为输出提供。读取数据后,您需要将缓冲区中返回的字符串转换为数字。 –
你的意思是我应该改变每一个0ah到01?那么mov dx,bx ...我应该写什么而不是dx? – user3202029