算术表达式运算
老师说课本这个程序还可以优化完善,不过我抓破头还是看不出来,请大家帮帮忙:assume ds:data,cs:codedata segment
x dw 200
y dw 300
z dw 4000
v dw 10000
w dw ?, ?
data ends
code segment
start:
mov ax, data
mov ds, ax
mov ax, x
imul y ;multiply y
mov cx, ax
mov bx, dx
mov ax, z
cwd
add cx, ax
adc bx, dx ;abc
sub cx, 460
sbb bx, 0 ;sbb
mov ax, v
cwd
sub ax, cx
sbb dx, bx ;sbb
idiv x ;idiv
mov w, ax
mov w+2, dx
mov ax, 4c00h
int 21h
code ends
end start mov ax, x
imul y ;multiply y
mov cx, ax
mov bx, dx
mov ax, z
cwd
add cx, ax
adc bx, dx ;abc
以上代码实现x*y+z,没必要非把z放入ax,再扩展再加吧
mov ax, x
imul y ;multiply y
mov cx, z
add ax,cx,
adc dx,0
汇编放下一段时间了,不一定对,可以参考下 最后结果显示不知道怎么看,好像是错的。
页:
[1]