回 帖 发 新 帖 刷新版面

主题:来找bug

定义宏指令finsum ,比较俩个数x和y,若x>y则执行sum<-x+2y,否则执行sum<-2x+y
finsum macro x,y,sum
       local next1,next2
       push ds
       push ax
       push bx
       mov ax,x
       cmp ax,y
       ja next1
       mov bx,x
       shl bx
       mov ax,y
       add ax,bx
       jmp next2
      next1: mov bx,y
             shl bx
       mov ax,x
       add ax,bx
       next2:
       mov sum,ax
       pop bx
       pop ax
       pop ds
      endm
data segment
datax dw 03h
datay dw 02h
total dw ?
data ends
stack segment stack
db 100 dup(0)
stack ends
code segment
main proc far
assume cs:code,ss:stack,ds:data
start:mov ax,data
      mov ax,ds
      mov ax,stack
      mov ss,ax
      .xall
      finsum datax,datay,total
      mov ah,4ch
      int 21h
      main endp
      code ends
      end start

回复列表 (共1个回复)

沙发


shl命令使用错误
shl bx,1

我来回复

您尚未登录,请登录后再回复。点此登录或注册