📄 lift.cod
字号:
TITLE C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\lift.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
$$SYMBOLS SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS ENDS
$$TYPES SEGMENT BYTE USE32 'DEBTYP'
$$TYPES ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
; COMDAT ??_C@_0BN@CCEA@?$LM?G?B?$LM?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?4?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_0CA@IHJB@?R?$KK?T?K?P?P?$LF?D?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_05PBCN@pause?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_0FE@KJB@?$LL?$LG?S?$KN?$LD?K?W?x?$LF?g?L?$NN?$CB?6?G?k?Q?$KB?T?q?R?$KK?V?$LE?P?P?$LF?D?$LC?Y?W?w@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_02MECO@?$CFd?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_0EP@HIKB@?Q?$KB?T?q?R?$KK?T?K?P?P?$LF?D?$LH?$LN?J?$LN?3?61?3?$LM?$PM?E?L?$LB?$NP?J?d?H?k?$LB?$NP@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_01LLF@w?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_09NJOF@write?4txt?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_03KE@cls?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_0BK@FAMP@?$LL?$LG?S?$KN?J?$LJ?S?C?$LB?$LO?$LD?L?P?r?0?P?$LL?P?$LL?$LK?O?W?w?$CB?6?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT _main
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _GetSelection
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _StartRun
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _Exit
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
FLAT GROUP _DATA, CONST, _BSS
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
endif
PUBLIC _n2
_DATA SEGMENT
COMM _StatusFloor:DWORD
COMM _GoalFloor:DWORD
_DATA ENDS
_BSS SEGMENT
_n2 DD 01H DUP (?)
_BSS ENDS
PUBLIC _StartRun
PUBLIC _Exit
PUBLIC _GetSelection
PUBLIC _main
PUBLIC ??_C@_0BN@CCEA@?$LM?G?B?$LM?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?4?$AA@ ; `string'
PUBLIC ??_C@_0CA@IHJB@?R?$KK?T?K?P?P?$LF?D?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?$AA@ ; `string'
PUBLIC ??_C@_05PBCN@pause?$AA@ ; `string'
EXTRN __iob:BYTE
EXTRN _fflush:NEAR
EXTRN _printf:NEAR
EXTRN _system:NEAR
EXTRN _StartFile:NEAR
EXTRN _IsFileOpened:NEAR
EXTRN _IsScriptOpened:NEAR
EXTRN __chkesp:NEAR
; COMDAT ??_C@_0BN@CCEA@?$LM?G?B?$LM?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?4?$AA@
; File C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\lift.c
CONST SEGMENT
??_C@_0BN@CCEA@?$LM?G?B?$LM?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?4?$AA@ DB 0bcH
DB 0c7H, 0c2H, 0bcH, 0ceH, 0c4H, 0bcH, 0feH, 0ceH, 0b4H, 0b4H, 0f2H
DB 0bfH, 0aaH, ',', 0b3H, 0ccH, 0d0H, 0f2H, 0d7H, 0d4H, 0b6H, 0afH
DB 0cdH, 0cbH, 0b3H, 0f6H, '.', 00H ; `string'
CONST ENDS
; COMDAT ??_C@_0CA@IHJB@?R?$KK?T?K?P?P?$LF?D?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?$AA@
CONST SEGMENT
??_C@_0CA@IHJB@?R?$KK?T?K?P?P?$LF?D?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?$AA@ DB 0d2H
DB 0aaH, 0d4H, 0cbH, 0d0H, 0d0H, 0b5H, 0c4H, 0ceH, 0c4H, 0bcH, 0feH
DB 0ceH, 0b4H, 0b4H, 0f2H, 0bfH, 0aaH, ',', 0b3H, 0ccH, 0d0H, 0f2H
DB 0d7H, 0d4H, 0b6H, 0afH, 0cdH, 0cbH, 0b3H, 0f6H, 00H ; `string'
CONST ENDS
; COMDAT ??_C@_05PBCN@pause?$AA@
CONST SEGMENT
??_C@_05PBCN@pause?$AA@ DB 'pause', 00H ; `string'
CONST ENDS
; COMDAT _main
_TEXT SEGMENT
_n$ = -4
_main PROC NEAR ; COMDAT
; 17 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 83 ec 48 sub esp, 72 ; 00000048H
00006 53 push ebx
00007 56 push esi
00008 57 push edi
00009 8d 7d b8 lea edi, DWORD PTR [ebp-72]
0000c b9 12 00 00 00 mov ecx, 18 ; 00000012H
00011 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00016 f3 ab rep stosd
; 18 : int n;/*存放选择的变量*/
; 19 :
; 20 : n=GetSelection();/*选择需要执行的命令*/
00018 e8 00 00 00 00 call _GetSelection
0001d 89 45 fc mov DWORD PTR _n$[ebp], eax
$L53017:
; 21 : while(n>=1&&n<=3&&n2!=1){
00020 83 7d fc 01 cmp DWORD PTR _n$[ebp], 1
00024 0f 8c ba 00 00
00 jl $L53018
0002a 83 7d fc 03 cmp DWORD PTR _n$[ebp], 3
0002e 0f 8f b0 00 00
00 jg $L53018
00034 83 3d 00 00 00
00 01 cmp DWORD PTR _n2, 1
0003b 0f 84 a3 00 00
00 je $L53018
; 22 : switch(n){
00041 8b 45 fc mov eax, DWORD PTR _n$[ebp]
00044 89 45 f8 mov DWORD PTR -8+[ebp], eax
00047 83 7d f8 01 cmp DWORD PTR -8+[ebp], 1
0004b 74 0e je SHORT $L53023
0004d 83 7d f8 02 cmp DWORD PTR -8+[ebp], 2
00051 74 0f je SHORT $L53024
00053 83 7d f8 03 cmp DWORD PTR -8+[ebp], 3
00057 74 64 je SHORT $L53033
00059 eb 67 jmp SHORT $L53020
$L53023:
; 23 : case 1:
; 24 : StartFile();/*进入文件操作模块*/
0005b e8 00 00 00 00 call _StartFile
; 25 : break;
00060 eb 60 jmp SHORT $L53020
$L53024:
; 26 :
; 27 : case 2:
; 28 : fflush(stdin);
00062 68 00 00 00 00 push OFFSET FLAT:__iob
00067 e8 00 00 00 00 call _fflush
0006c 83 c4 04 add esp, 4
; 29 : if(IsFileOpened()==0){
0006f e8 00 00 00 00 call _IsFileOpened
00074 85 c0 test eax, eax
00076 75 14 jne SHORT $L53026
; 30 : printf("记录文件未打开,程序自动退出.");
00078 68 00 00 00 00 push OFFSET FLAT:??_C@_0BN@CCEA@?$LM?G?B?$LM?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?4?$AA@ ; `string'
0007d e8 00 00 00 00 call _printf
00082 83 c4 04 add esp, 4
; 31 : Exit();/*若记录文件未打开,退出程序*/
00085 e8 00 00 00 00 call _Exit
; 33 : else{
0008a eb 2f jmp SHORT $L53028
$L53026:
; 34 : if(IsScriptOpened()==0){
0008c e8 00 00 00 00 call _IsScriptOpened
00091 85 c0 test eax, eax
00093 75 14 jne SHORT $L53030
; 35 : printf("要运行的文件未打开,程序自动退出");
00095 68 00 00 00 00 push OFFSET FLAT:??_C@_0CA@IHJB@?R?$KK?T?K?P?P?$LF?D?N?D?$LM?$PO?N?$LE?$LE?r?$LP?$KK?0?$LD?L?P?r?W?T?$LG?$KP?M?K?$LD?v?$AA@ ; `string'
0009a e8 00 00 00 00 call _printf
0009f 83 c4 04 add esp, 4
; 36 : Exit();
000a2 e8 00 00 00 00 call _Exit
; 38 : else
000a7 eb 0d jmp SHORT $L53032
$L53030:
; 39 : fflush(stdin);
000a9 68 00 00 00 00 push OFFSET FLAT:__iob
000ae e8 00 00 00 00 call _fflush
000b3 83 c4 04 add esp, 4
$L53032:
; 40 : StartRun();/*开始运行程序*/
000b6 e8 00 00 00 00 call _StartRun
$L53028:
; 42 : break;
000bb eb 05 jmp SHORT $L53020
$L53033:
; 43 :
; 44 : case 3:
; 45 : Exit();
000bd e8 00 00 00 00 call _Exit
$L53020:
; 48 : if((n==1||n==2)&&n2!=1)
000c2 83 7d fc 01 cmp DWORD PTR _n$[ebp], 1
000c6 74 06 je SHORT $L53035
000c8 83 7d fc 02 cmp DWORD PTR _n$[ebp], 2
000cc 75 11 jne SHORT $L53034
$L53035:
000ce 83 3d 00 00 00
00 01 cmp DWORD PTR _n2, 1
000d5 74 08 je SHORT $L53034
; 49 : n=GetSelection();
000d7 e8 00 00 00 00 call _GetSelection
000dc 89 45 fc mov DWORD PTR _n$[ebp], eax
$L53034:
; 50 : }
000df e9 3c ff ff ff jmp $L53017
$L53018:
; 51 : system("pause");
000e4 68 00 00 00 00 push OFFSET FLAT:??_C@_05PBCN@pause?$AA@ ; `string'
000e9 e8 00 00 00 00 call _system
000ee 83 c4 04 add esp, 4
; 52 : return 0;
000f1 33 c0 xor eax, eax
; 53 : }
000f3 5f pop edi
000f4 5e pop esi
000f5 5b pop ebx
000f6 83 c4 48 add esp, 72 ; 00000048H
000f9 3b ec cmp ebp, esp
000fb e8 00 00 00 00 call __chkesp
00100 8b e5 mov esp, ebp
00102 5d pop ebp
00103 c3 ret 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -