fishz 发表于 2011-4-25 22:07:05

算术表达式运算

老师说课本这个程序还可以优化完善,不过我抓破头还是看不出来,请大家帮帮忙:assume ds:data,cs:code

data 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

winddyj 发表于 2011-4-27 21:56:14

      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
汇编放下一段时间了,不一定对,可以参考下

fishz 发表于 2011-4-27 22:55:20

最后结果显示不知道怎么看,好像是错的。
页: [1]
查看完整版本: 算术表达式运算