/* aa701.c */
int min(int var1,int var2)
{ asm mov ax,var1
asm cmp ax,var2
asm jle minexit
asm mov ax,var2
minexit:return(_AX);
}
main()
{ min(100,200);
}
经过转换后汇编语言:
_TEXT segment byte public 'CODE'
DGROUP group _DATA,_BSS
assume cs:_TEXT,ds:DGROUP,ss:DGROUP
_TEXT ends
_DATA segment word public 'DATA'
d@ label byte
d@w label word
_DATA ends
_BSS segment word public 'BSS'
b@ label byte
b@w label word
?debug C E945A68C38076C743730312E63
_BSS ends
_TEXT segment byte public 'CODE'
; ?debug L 2
_min proc near
push bp
mov bp,sp
; ?debug L 3
mov ax,[bp+4]
; ?debug L 4
cmp ax,[bp+6]
; ?debug L 5
jle @2
; ?debug L 6
mov ax,[bp+6]
@2:
; ?debug L 7
jmp short @1
@1:
; ?debug L 8
pop bp
ret
_min endp
; ?debug L 9
_main proc near
; ?debug L 10
mov ax,200
push ax
mov ax,100
push ax
call near ptr _min
pop cx
pop cx
@3:
; ?debug L 11
ret
_main endp
_TEXT ends
?debug C E9
_DATA segment word public 'DATA'
s@ label byte
_DATA ends
_TEXT segment byte public 'CODE'
_TEXT ends
public _main
public _min
end