谁会用汇编语言做 a*b+c/d-e ,做好几天了,老是溢出

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:13:17
五组数字:1,2,20,4,5
3,4,40,5,20
5,6,60,6,20
1,2,20,4,20
2,3,10,5,15

; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
Datas db 1,2,20,4,5
db 3,4,40,5,20
db 5,6,60,6,20
db 1,2,20,4,20
db 2,3,10,5,15
even
Rwsault dw 5 dup(?) ;计算结果放在这里
Start: push cs
pop ds
push cs
pop es ;使数据段、附加段与代码段同段
cld
lea si,Datas
lea di,Rwsault
mov cx,5
calculate: lodsb ;读入a
mul byte ptr [si] ;a*b
mov bx,ax
inc si
lodsb ; ;读入c
xor ah,ah
div byte ptr [si] ;c/d
inc si
xor ah,ah
add ax,bx ;a*b+c/d
mov bl,[si]
xor bh,bh
sub ax,bx ;a*b+c/d-e
inc si
stosw ;保存计算结果
loop calculate
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Buffer db 255
Code ENDS
END Start ;编译到此结束