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

📄 lift.cod

📁 模拟电梯程序
💻 COD
📖 第 1 页 / 共 2 页
字号:
	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 + -