⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.cod

📁 模拟电梯程序
💻 COD
📖 第 1 页 / 共 2 页
字号:
	00 00		 cmp	 DWORD PTR _OutputFileptr, 0
  0001f	75 04		 jne	 SHORT $L719

; 73   : 		return 0;

  00021	33 c0		 xor	 eax, eax
  00023	eb 05		 jmp	 SHORT $L720
$L719:

; 74   :     else 
; 75   : 		return 1;

  00025	b8 01 00 00 00	 mov	 eax, 1
$L720:

; 76   : }

  0002a	5f		 pop	 edi
  0002b	5e		 pop	 esi
  0002c	5b		 pop	 ebx
  0002d	8b e5		 mov	 esp, ebp
  0002f	5d		 pop	 ebp
  00030	c3		 ret	 0
_IsAnnalFileOpened ENDP
_TEXT	ENDS
PUBLIC	_FlushFileBuffer
PUBLIC	??_C@_09NDFD@SUCCEED?$CB?6?$AA@			; `string'
;	COMDAT ??_C@_09NDFD@SUCCEED?$CB?6?$AA@
; File C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\File.c
CONST	SEGMENT
??_C@_09NDFD@SUCCEED?$CB?6?$AA@ DB 'SUCCEED!', 0aH, 00H	; `string'
CONST	ENDS
;	COMDAT _FlushFileBuffer
_TEXT	SEGMENT
_FlushFileBuffer PROC NEAR				; COMDAT

; 80   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	8d 7d c0	 lea	 edi, DWORD PTR [ebp-64]
  0000c	b9 10 00 00 00	 mov	 ecx, 16			; 00000010H
  00011	b8 cc cc cc cc	 mov	 eax, -858993460		; ccccccccH
  00016	f3 ab		 rep stosd

; 81   :      if(!fflush(InputFileptr))

  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR _InputFileptr
  0001d	50		 push	 eax
  0001e	e8 00 00 00 00	 call	 _fflush
  00023	83 c4 04	 add	 esp, 4
  00026	85 c0		 test	 eax, eax
  00028	75 0f		 jne	 SHORT $L724

; 82   :      printf("SUCCEED!\n");

  0002a	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_09NDFD@SUCCEED?$CB?6?$AA@ ; `string'
  0002f	e8 00 00 00 00	 call	 _printf
  00034	83 c4 04	 add	 esp, 4

; 83   :      else

  00037	eb 0d		 jmp	 SHORT $L726
$L724:

; 84   :      printf("ERROR\n");

  00039	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_06OMND@ERROR?6?$AA@ ; `string'
  0003e	e8 00 00 00 00	 call	 _printf
  00043	83 c4 04	 add	 esp, 4
$L726:

; 85   : }

  00046	5f		 pop	 edi
  00047	5e		 pop	 esi
  00048	5b		 pop	 ebx
  00049	83 c4 40	 add	 esp, 64			; 00000040H
  0004c	3b ec		 cmp	 ebp, esp
  0004e	e8 00 00 00 00	 call	 __chkesp
  00053	8b e5		 mov	 esp, ebp
  00055	5d		 pop	 ebp
  00056	c3		 ret	 0
_FlushFileBuffer ENDP
_TEXT	ENDS
PUBLIC	_Output
PUBLIC	??_C@_08NGMJ@?$CF10d?$CF8d?6?$AA@		; `string'
PUBLIC	??_C@_09BIKK@?$CFd?5?5?5?5?$CFd?6?$AA@		; `string'
EXTRN	_free:NEAR
EXTRN	_fprintf:NEAR
;	COMDAT ??_C@_08NGMJ@?$CF10d?$CF8d?6?$AA@
; File C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\File.c
CONST	SEGMENT
??_C@_08NGMJ@?$CF10d?$CF8d?6?$AA@ DB '%10d%8d', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09BIKK@?$CFd?5?5?5?5?$CFd?6?$AA@
CONST	SEGMENT
??_C@_09BIKK@?$CFd?5?5?5?5?$CFd?6?$AA@ DB '%d    %d', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT _Output
_TEXT	SEGMENT
_startPtr$ = 8
_Output	PROC NEAR					; COMDAT

; 90   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	8d 7d c0	 lea	 edi, DWORD PTR [ebp-64]
  0000c	b9 10 00 00 00	 mov	 ecx, 16			; 00000010H
  00011	b8 cc cc cc cc	 mov	 eax, -858993460		; ccccccccH
  00016	f3 ab		 rep stosd

; 91   :     if((*startPtr)!=NULL){

  00018	8b 45 08	 mov	 eax, DWORD PTR _startPtr$[ebp]
  0001b	83 38 00	 cmp	 DWORD PTR [eax], 0
  0001e	74 60		 je	 SHORT $L731

; 92   :        printf("%10d%8d\n",(*startPtr)->PauseTime,(*startPtr)->PauseFloor);

  00020	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  00023	8b 11		 mov	 edx, DWORD PTR [ecx]
  00025	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00028	50		 push	 eax
  00029	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  0002c	8b 11		 mov	 edx, DWORD PTR [ecx]
  0002e	8b 02		 mov	 eax, DWORD PTR [edx]
  00030	50		 push	 eax
  00031	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_08NGMJ@?$CF10d?$CF8d?6?$AA@ ; `string'
  00036	e8 00 00 00 00	 call	 _printf
  0003b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 93   :        fprintf(RecordFileptr,"%d    %d\n",(*startPtr)->PauseTime,(*startPtr)->PauseFloor);

  0003e	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  00041	8b 11		 mov	 edx, DWORD PTR [ecx]
  00043	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00046	50		 push	 eax
  00047	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  0004a	8b 11		 mov	 edx, DWORD PTR [ecx]
  0004c	8b 02		 mov	 eax, DWORD PTR [edx]
  0004e	50		 push	 eax
  0004f	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_09BIKK@?$CFd?5?5?5?5?$CFd?6?$AA@ ; `string'
  00054	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _RecordFileptr
  0005a	51		 push	 ecx
  0005b	e8 00 00 00 00	 call	 _fprintf
  00060	83 c4 10	 add	 esp, 16			; 00000010H

; 94   : 	   fflush(RecordFileptr);

  00063	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _RecordFileptr
  00069	52		 push	 edx
  0006a	e8 00 00 00 00	 call	 _fflush
  0006f	83 c4 04	 add	 esp, 4

; 95   :        free(*startPtr);

  00072	8b 45 08	 mov	 eax, DWORD PTR _startPtr$[ebp]
  00075	8b 08		 mov	 ecx, DWORD PTR [eax]
  00077	51		 push	 ecx
  00078	e8 00 00 00 00	 call	 _free
  0007d	83 c4 04	 add	 esp, 4
$L731:

; 97   :     *startPtr=NULL;

  00080	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  00083	c7 02 00 00 00
	00		 mov	 DWORD PTR [edx], 0

; 98   : }

  00089	5f		 pop	 edi
  0008a	5e		 pop	 esi
  0008b	5b		 pop	 ebx
  0008c	83 c4 40	 add	 esp, 64			; 00000040H
  0008f	3b ec		 cmp	 ebp, esp
  00091	e8 00 00 00 00	 call	 __chkesp
  00096	8b e5		 mov	 esp, ebp
  00098	5d		 pop	 ebp
  00099	c3		 ret	 0
_Output	ENDP
_TEXT	ENDS
PUBLIC	_IsFileOpened
PUBLIC	??_C@_0M@IAF@D?3?2lift?4txt?$AA@		; `string'
;	COMDAT ??_C@_0M@IAF@D?3?2lift?4txt?$AA@
; File C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\File.c
CONST	SEGMENT
??_C@_0M@IAF@D?3?2lift?4txt?$AA@ DB 'D:\lift.txt', 00H	; `string'
CONST	ENDS
;	COMDAT _IsFileOpened
_TEXT	SEGMENT
_IsFileOpened PROC NEAR					; COMDAT

; 104  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	8d 7d c0	 lea	 edi, DWORD PTR [ebp-64]
  0000c	b9 10 00 00 00	 mov	 ecx, 16			; 00000010H
  00011	b8 cc cc cc cc	 mov	 eax, -858993460		; ccccccccH
  00016	f3 ab		 rep stosd

; 105  :     if((InputFileptr=fopen("D:\\lift.txt","w"))==NULL)

  00018	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_01LLF@w?$AA@ ; `string'
  0001d	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_0M@IAF@D?3?2lift?4txt?$AA@ ; `string'
  00022	e8 00 00 00 00	 call	 _fopen
  00027	83 c4 08	 add	 esp, 8
  0002a	a3 00 00 00 00	 mov	 DWORD PTR _InputFileptr, eax
  0002f	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _InputFileptr, 0
  00036	75 04		 jne	 SHORT $L738

; 106  : 		return 0;

  00038	33 c0		 xor	 eax, eax
  0003a	eb 05		 jmp	 SHORT $L740
$L738:

; 107  :     else 
; 108  : 		return 1;

  0003c	b8 01 00 00 00	 mov	 eax, 1
$L740:

; 109  : }

  00041	5f		 pop	 edi
  00042	5e		 pop	 esi
  00043	5b		 pop	 ebx
  00044	83 c4 40	 add	 esp, 64			; 00000040H
  00047	3b ec		 cmp	 ebp, esp
  00049	e8 00 00 00 00	 call	 __chkesp
  0004e	8b e5		 mov	 esp, ebp
  00050	5d		 pop	 ebp
  00051	c3		 ret	 0
_IsFileOpened ENDP
_TEXT	ENDS
PUBLIC	_ReadFromFile
PUBLIC	??_C@_0BH@HJKC@?G?k?J?d?H?k?R?$KK?$LE?r?$LP?$KK?$LF?D?N?D?$LM?$PO?C?$PL?$KD?$LK?$AA@ ; `string'
PUBLIC	??_C@_01LHO@r?$AA@				; `string'
PUBLIC	??_C@_0O@LFNL@?N?D?$LM?$PO?$LC?$LL?$LE?f?T?Z?$KD?$KB?6?$AA@ ; `string'
PUBLIC	??_C@_05JMIL@?$CFd?5?$CFc?$AA@			; `string'
EXTRN	_fscanf:NEAR
EXTRN	_gets:NEAR
;	COMDAT ??_C@_0BH@HJKC@?G?k?J?d?H?k?R?$KK?$LE?r?$LP?$KK?$LF?D?N?D?$LM?$PO?C?$PL?$KD?$LK?$AA@
; File C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\File.c
CONST	SEGMENT
??_C@_0BH@HJKC@?G?k?J?d?H?k?R?$KK?$LE?r?$LP?$KK?$LF?D?N?D?$LM?$PO?C?$PL?$KD?$LK?$AA@ DB 0c7H
	DB	0ebH, 0caH, 0e4H, 0c8H, 0ebH, 0d2H, 0aaH, 0b4H, 0f2H, 0bfH, 0aaH
	DB	0b5H, 0c4H, 0ceH, 0c4H, 0bcH, 0feH, 0c3H, 0fbH, 0a3H, 0baH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_01LHO@r?$AA@
CONST	SEGMENT
??_C@_01LHO@r?$AA@ DB 'r', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@LFNL@?N?D?$LM?$PO?$LC?$LL?$LE?f?T?Z?$KD?$KB?6?$AA@
CONST	SEGMENT
??_C@_0O@LFNL@?N?D?$LM?$PO?$LC?$LL?$LE?f?T?Z?$KD?$KB?6?$AA@ DB 0ceH, 0c4H
	DB	0bcH, 0feH, 0b2H, 0bbH, 0b4H, 0e6H, 0d4H, 0daH, 0a3H, 0a1H, 0aH
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_05JMIL@?$CFd?5?$CFc?$AA@
CONST	SEGMENT
??_C@_05JMIL@?$CFd?5?$CFc?$AA@ DB '%d %c', 00H		; `string'
CONST	ENDS
;	COMDAT _ReadFromFile
_TEXT	SEGMENT
_fptr$ = -4
_ch$ = -32
_i$ = -36
_ReadFromFile PROC NEAR					; COMDAT

; 112  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 64	 sub	 esp, 100		; 00000064H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	8d 7d 9c	 lea	 edi, DWORD PTR [ebp-100]
  0000c	b9 19 00 00 00	 mov	 ecx, 25			; 00000019H
  00011	b8 cc cc cc cc	 mov	 eax, -858993460		; ccccccccH
  00016	f3 ab		 rep stosd

; 113  : 	FILE *fptr;
; 114  : 	int time;
; 115  : 	char command;
; 116  : 	char ch[20];
; 117  : 	int i = 0;

  00018	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0

; 118  : 
; 119  : 	if (OutputFileptr == NULL) {

  0001f	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _OutputFileptr, 0
  00026	75 44		 jne	 SHORT $L748

; 120  : 		printf("请输入要打开的文件名:");

  00028	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_0BH@HJKC@?G?k?J?d?H?k?R?$KK?$LE?r?$LP?$KK?$LF?D?N?D?$LM?$PO?C?$PL?$KD?$LK?$AA@ ; `string'
  0002d	e8 00 00 00 00	 call	 _printf
  00032	83 c4 04	 add	 esp, 4

; 121  : 		gets(ch);

  00035	8d 45 e0	 lea	 eax, DWORD PTR _ch$[ebp]
  00038	50		 push	 eax
  00039	e8 00 00 00 00	 call	 _gets
  0003e	83 c4 04	 add	 esp, 4

; 122  : 		fptr = fopen(ch, "r");

  00041	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_01LHO@r?$AA@ ; `string'
  00046	8d 4d e0	 lea	 ecx, DWORD PTR _ch$[ebp]
  00049	51		 push	 ecx
  0004a	e8 00 00 00 00	 call	 _fopen
  0004f	83 c4 08	 add	 esp, 8
  00052	89 45 fc	 mov	 DWORD PTR _fptr$[ebp], eax

; 123  : 		if (!fptr) {

  00055	83 7d fc 00	 cmp	 DWORD PTR _fptr$[ebp], 0
  00059	75 0f		 jne	 SHORT $L751

; 124  : 			printf("文件不存在!\n");

  0005b	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_0O@LFNL@?N?D?$LM?$PO?$LC?$LL?$LE?f?T?Z?$KD?$KB?6?$AA@ ; `string'
  00060	e8 00 00 00 00	 call	 _printf
  00065	83 c4 04	 add	 esp, 4

; 125  : 			return;

  00068	eb 71		 jmp	 SHORT $L741
$L751:

; 128  : 	else {

  0006a	eb 09		 jmp	 SHORT $L753
$L748:

; 129  : 		fptr = OutputFileptr;

  0006c	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _OutputFileptr
  00072	89 55 fc	 mov	 DWORD PTR _fptr$[ebp], edx
$L753:

; 131  : 
; 132  : 	fscanf(fptr, "%d %c", &cmd[0].time, &cmd[0].command);

  00075	68 04 00 00 00	 push	 OFFSET FLAT:_cmd+4
  0007a	68 00 00 00 00	 push	 OFFSET FLAT:_cmd
  0007f	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_05JMIL@?$CFd?5?$CFc?$AA@ ; `string'
  00084	8b 45 fc	 mov	 eax, DWORD PTR _fptr$[ebp]
  00087	50		 push	 eax
  00088	e8 00 00 00 00	 call	 _fscanf
  0008d	83 c4 10	 add	 esp, 16			; 00000010H
$L756:

; 133  : 	while (!feof(fptr)) {

  00090	8b 4d fc	 mov	 ecx, DWORD PTR _fptr$[ebp]
  00093	8b 51 0c	 mov	 edx, DWORD PTR [ecx+12]
  00096	83 e2 10	 and	 edx, 16			; 00000010H
  00099	85 d2		 test	 edx, edx
  0009b	75 32		 jne	 SHORT $L757

; 134  : 		i++;

  0009d	8b 45 dc	 mov	 eax, DWORD PTR _i$[ebp]
  000a0	83 c0 01	 add	 eax, 1
  000a3	89 45 dc	 mov	 DWORD PTR _i$[ebp], eax

; 135  : 		fscanf(fptr, "%d %c", &cmd[i].time, &cmd[i].command);

  000a6	8b 4d dc	 mov	 ecx, DWORD PTR _i$[ebp]
  000a9	8d 14 cd 04 00
	00 00		 lea	 edx, DWORD PTR _cmd[ecx*8+4]
  000b0	52		 push	 edx
  000b1	8b 45 dc	 mov	 eax, DWORD PTR _i$[ebp]
  000b4	8d 0c c5 00 00
	00 00		 lea	 ecx, DWORD PTR _cmd[eax*8]
  000bb	51		 push	 ecx
  000bc	68 00 00 00 00	 push	 OFFSET FLAT:??_C@_05JMIL@?$CFd?5?$CFc?$AA@ ; `string'
  000c1	8b 55 fc	 mov	 edx, DWORD PTR _fptr$[ebp]
  000c4	52		 push	 edx
  000c5	e8 00 00 00 00	 call	 _fscanf
  000ca	83 c4 10	 add	 esp, 16			; 00000010H

; 136  : 	}

  000cd	eb c1		 jmp	 SHORT $L756
$L757:

; 137  : 
; 138  : 	fclose(fptr);

  000cf	8b 45 fc	 mov	 eax, DWORD PTR _fptr$[ebp]
  000d2	50		 push	 eax
  000d3	e8 00 00 00 00	 call	 _fclose
  000d8	83 c4 04	 add	 esp, 4
$L741:

; 139  : }

  000db	5f		 pop	 edi
  000dc	5e		 pop	 esi
  000dd	5b		 pop	 ebx
  000de	83 c4 64	 add	 esp, 100		; 00000064H
  000e1	3b ec		 cmp	 ebp, esp
  000e3	e8 00 00 00 00	 call	 __chkesp
  000e8	8b e5		 mov	 esp, ebp
  000ea	5d		 pop	 ebp
  000eb	c3		 ret	 0
_ReadFromFile ENDP
_TEXT	ENDS
PUBLIC	_GetInput2
EXTRN	_translatecalling:NEAR
;	COMDAT _GetInput2
_TEXT	SEGMENT
_curTime$ = 8
_GetInput2 PROC NEAR					; COMDAT

; 143  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	8d 7d c0	 lea	 edi, DWORD PTR [ebp-64]
  0000c	b9 10 00 00 00	 mov	 ecx, 16			; 00000010H
  00011	b8 cc cc cc cc	 mov	 eax, -858993460		; ccccccccH
  00016	f3 ab		 rep stosd
$L765:

; 144  :     static int i = 0;
; 145  : 
; 146  : 	while (cmd[i].time == curTime) {

  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR _?i@?1??GetInput2@@9@9
  0001d	8b 0c c5 00 00
	00 00		 mov	 ecx, DWORD PTR _cmd[eax*8]
  00024	3b 4d 08	 cmp	 ecx, DWORD PTR _curTime$[ebp]
  00027	75 28		 jne	 SHORT $L766

; 147  : 		translatecalling(cmd[i].command);

  00029	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _?i@?1??GetInput2@@9@9
  0002f	0f be 04 d5 04
	00 00 00	 movsx	 eax, BYTE PTR _cmd[edx*8+4]
  00037	50		 push	 eax
  00038	e8 00 00 00 00	 call	 _translatecalling
  0003d	83 c4 04	 add	 esp, 4

; 148  : 		i++;

  00040	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _?i@?1??GetInput2@@9@9
  00046	83 c1 01	 add	 ecx, 1
  00049	89 0d 00 00 00
	00		 mov	 DWORD PTR _?i@?1??GetInput2@@9@9, ecx

; 149  : 	}

  0004f	eb c7		 jmp	 SHORT $L765
$L766:

; 150  : }    

  00051	5f		 pop	 edi
  00052	5e		 pop	 esi
  00053	5b		 pop	 ebx
  00054	83 c4 40	 add	 esp, 64			; 00000040H
  00057	3b ec		 cmp	 ebp, esp
  00059	e8 00 00 00 00	 call	 __chkesp
  0005e	8b e5		 mov	 esp, ebp
  00060	5d		 pop	 ebp
  00061	c3		 ret	 0
_GetInput2 ENDP
_TEXT	ENDS
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -