📄 varcheck.asm
字号:
TITLE Varcheck.c
.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
FLAT GROUP _DATA, CONST, _BSS
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
endif
PUBLIC _Swap
_TEXT SEGMENT
_a$ = 8
_b$ = 12
_Swap PROC NEAR
; File Varcheck.c
; Line 4
push ebp
mov ebp, esp
; Line 5
mov eax, DWORD PTR _a$[ebp]
mov ecx, DWORD PTR _b$[ebp]
mov edx, DWORD PTR [eax]
xor edx, DWORD PTR [ecx]
mov eax, DWORD PTR _a$[ebp]
mov DWORD PTR [eax], edx
; Line 6
mov ecx, DWORD PTR _b$[ebp]
mov edx, DWORD PTR _a$[ebp]
mov eax, DWORD PTR [ecx]
xor eax, DWORD PTR [edx]
mov ecx, DWORD PTR _b$[ebp]
mov DWORD PTR [ecx], eax
; Line 7
mov edx, DWORD PTR _a$[ebp]
mov eax, DWORD PTR _b$[ebp]
mov ecx, DWORD PTR [edx]
xor ecx, DWORD PTR [eax]
mov edx, DWORD PTR _a$[ebp]
mov DWORD PTR [edx], ecx
; Line 8
pop ebp
ret 0
_Swap ENDP
_TEXT ENDS
PUBLIC _main
EXTRN _printf:NEAR
EXTRN _getch:NEAR
_DATA SEGMENT
$SG345 DB 'i=%d,j=%d', 0aH, 00H
ORG $+1
$SG346 DB 'i=%d,j=%d', 0aH, 00H
_DATA ENDS
_TEXT SEGMENT
_i$ = -4
_j$ = -8
_main PROC NEAR
; Line 11
push ebp
mov ebp, esp
sub esp, 8
; Line 12
mov DWORD PTR _i$[ebp], 1
mov DWORD PTR _j$[ebp], 2
; Line 13
mov eax, DWORD PTR _j$[ebp]
push eax
mov ecx, DWORD PTR _i$[ebp]
push ecx
push OFFSET FLAT:$SG345
call _printf
add esp, 12 ; 0000000cH
; Line 14
lea edx, DWORD PTR _j$[ebp]
push edx
lea eax, DWORD PTR _i$[ebp]
push eax
call _Swap
add esp, 8
; Line 15
mov ecx, DWORD PTR _j$[ebp]
push ecx
mov edx, DWORD PTR _i$[ebp]
push edx
push OFFSET FLAT:$SG346
call _printf
add esp, 12 ; 0000000cH
; Line 16
call _getch
; Line 17
mov esp, ebp
pop ebp
ret 0
_main ENDP
_TEXT ENDS
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -