|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 qjr1213 于 2016-3-23 21:18 编辑
assume cs:dmd,ds:sjd,ss:dzd
sjd segment
dd 1234567890 ;被乘数
dd 59801 ;乘数
df 0 ;结果存放
sjd ends
dzd segment
dw 16 dup (?)
dzd ends
dmd segment
k:mov ax,dzd
mov ss,ax
mov sp,32
mov ax,sjd
mov ds,ax
add di,4
mov si,8
mov es,ax
mov ax,0
mov cx,0004
g:push cx
mov cx,0004
o:xor ax,ax
xor dx,dx
mov dl,byte ptr[di] ;取出一个字节乘数到dl
mov al,byte ptr[bx] ;取出一个字节被乘数al
pushf
mul dx
inc bx
mov dx,es:[si]
popf
adc ax,dx
mov es:[si],ax
inc si
loop o
pop cx
inc di
xor ax,ax
mov ax,4
push di
sub di,ax
mov si,8
add si,di
pop di
mov bx,0
loop g
mov ax,4c00H
int 21H
dmd ends
end k
系统计算器计算出4325 8338 D182 而我的程序算出4325 8238 D182 为什么结果不正确呢,是构思还是语法有错?求大神解 |
|