我是装配工的新手,我不确定我制作的这个小程序有什么问题。它所做的一切都是+ 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
答案 0 :(得分:0)
mov dx,bx
int 21h
打印数字没有DOS中断。您必须自己将数值转换为字符串,然后使用INT 21H / AH=9
打印字符串。
此外,这一行:
mov ax, 4ch
应该是:
mov ax,4c00h
(函数编号需要进入AH
,这是AX
的上半部分)