主题:来找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
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