list.cod

来自「模拟电梯程序」· COD 代码 · 共 1,647 行 · 第 1/4 页

COD
1,647 行
字号
$L53012:

; 238  :            while(State==1&&(*startPtr!=NULL)&&(StatusFloor==(*startPtr)->CallFloor)&&
; 239  :               ((*startPtr)->CallDirection==2||(*startPtr)->CallDirection==0)){//若为头结点 

  00239	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR _State, 1
  00240	75 71		 jne	 SHORT $L53047
  00242	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  00245	83 39 00	 cmp	 DWORD PTR [ecx], 0
  00248	74 69		 je	 SHORT $L53047
  0024a	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  0024d	8b 02		 mov	 eax, DWORD PTR [edx]
  0024f	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _StatusFloor
  00255	3b 48 04	 cmp	 ecx, DWORD PTR [eax+4]
  00258	75 59		 jne	 SHORT $L53047
  0025a	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  0025d	8b 02		 mov	 eax, DWORD PTR [edx]
  0025f	83 38 02	 cmp	 DWORD PTR [eax], 2
  00262	74 0a		 je	 SHORT $L53048
  00264	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  00267	8b 11		 mov	 edx, DWORD PTR [ecx]
  00269	83 3a 00	 cmp	 DWORD PTR [edx], 0
  0026c	75 45		 jne	 SHORT $L53047
$L53048:

; 240  :               if((*startPtr)->CallDirection==2)

  0026e	8b 45 08	 mov	 eax, DWORD PTR _startPtr$[ebp]
  00271	8b 08		 mov	 ecx, DWORD PTR [eax]
  00273	83 39 02	 cmp	 DWORD PTR [ecx], 2
  00276	75 0a		 jne	 SHORT $L53049

; 241  :                  n3=1;

  00278	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR _n3, 1
$L53049:

; 242  :               tempptr=(*startPtr);

  00282	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  00285	8b 02		 mov	 eax, DWORD PTR [edx]
  00287	89 45 f4	 mov	 DWORD PTR _tempptr$[ebp], eax

; 243  : 		      ControlCallFlash(tempptr, FALSE);

  0028a	6a 00		 push	 0
  0028c	8b 4d f4	 mov	 ecx, DWORD PTR _tempptr$[ebp]
  0028f	51		 push	 ecx
  00290	e8 00 00 00 00	 call	 _ControlCallFlash
  00295	83 c4 08	 add	 esp, 8

; 244  :               *startPtr=(*startPtr)->Nextptr;

  00298	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  0029b	8b 02		 mov	 eax, DWORD PTR [edx]
  0029d	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  002a0	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  002a3	89 11		 mov	 DWORD PTR [ecx], edx

; 245  :               free(tempptr);

  002a5	8b 45 f4	 mov	 eax, DWORD PTR _tempptr$[ebp]
  002a8	50		 push	 eax
  002a9	e8 00 00 00 00	 call	 _free
  002ae	83 c4 04	 add	 esp, 4

; 246  : 		   }

  002b1	eb 86		 jmp	 SHORT $L53012
$L53047:

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

  002b3	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  002b6	83 39 00	 cmp	 DWORD PTR [ecx], 0
  002b9	0f 84 73 01 00
	00		 je	 $L53071

; 248  :               currentptr=(*startPtr)->Nextptr;

  002bf	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  002c2	8b 02		 mov	 eax, DWORD PTR [edx]
  002c4	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  002c7	89 4d f8	 mov	 DWORD PTR _currentptr$[ebp], ecx

; 249  :               previousptr=*startPtr;

  002ca	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  002cd	8b 02		 mov	 eax, DWORD PTR [edx]
  002cf	89 45 fc	 mov	 DWORD PTR _previousptr$[ebp], eax
$L53054:

; 250  :               while(currentptr!=NULL){

  002d2	83 7d f8 00	 cmp	 DWORD PTR _currentptr$[ebp], 0
  002d6	74 76		 je	 SHORT $L53055

; 251  :                  if((currentptr->CallFloor==StatusFloor)&&State==1&&
; 252  :                  (currentptr->CallDirection==2||currentptr->CallDirection==0)){

  002d8	8b 4d f8	 mov	 ecx, DWORD PTR _currentptr$[ebp]
  002db	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  002de	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _StatusFloor
  002e4	75 57		 jne	 SHORT $L53056
  002e6	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR _State, 1
  002ed	75 4e		 jne	 SHORT $L53056
  002ef	8b 45 f8	 mov	 eax, DWORD PTR _currentptr$[ebp]
  002f2	83 38 02	 cmp	 DWORD PTR [eax], 2
  002f5	74 08		 je	 SHORT $L53057
  002f7	8b 4d f8	 mov	 ecx, DWORD PTR _currentptr$[ebp]
  002fa	83 39 00	 cmp	 DWORD PTR [ecx], 0
  002fd	75 3e		 jne	 SHORT $L53056
$L53057:

; 253  :                     //if(currentptr->CallDirection==2)                                                       
; 254  :                        n3=1;

  002ff	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR _n3, 1

; 255  :                     tempptr=currentptr;

  00309	8b 55 f8	 mov	 edx, DWORD PTR _currentptr$[ebp]
  0030c	89 55 f4	 mov	 DWORD PTR _tempptr$[ebp], edx

; 256  : 				    ControlCallFlash(tempptr, FALSE);

  0030f	6a 00		 push	 0
  00311	8b 45 f4	 mov	 eax, DWORD PTR _tempptr$[ebp]
  00314	50		 push	 eax
  00315	e8 00 00 00 00	 call	 _ControlCallFlash
  0031a	83 c4 08	 add	 esp, 8

; 257  :                     currentptr=currentptr->Nextptr;

  0031d	8b 4d f8	 mov	 ecx, DWORD PTR _currentptr$[ebp]
  00320	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  00323	89 55 f8	 mov	 DWORD PTR _currentptr$[ebp], edx

; 258  :                     previousptr->Nextptr=currentptr;

  00326	8b 45 fc	 mov	 eax, DWORD PTR _previousptr$[ebp]
  00329	8b 4d f8	 mov	 ecx, DWORD PTR _currentptr$[ebp]
  0032c	89 48 08	 mov	 DWORD PTR [eax+8], ecx

; 259  :                     free(tempptr);

  0032f	8b 55 f4	 mov	 edx, DWORD PTR _tempptr$[ebp]
  00332	52		 push	 edx
  00333	e8 00 00 00 00	 call	 _free
  00338	83 c4 04	 add	 esp, 4

; 261  :                  else{

  0033b	eb 0f		 jmp	 SHORT $L53058
$L53056:

; 262  :                     previousptr=currentptr;

  0033d	8b 45 f8	 mov	 eax, DWORD PTR _currentptr$[ebp]
  00340	89 45 fc	 mov	 DWORD PTR _previousptr$[ebp], eax

; 263  :                     currentptr=currentptr->Nextptr;

  00343	8b 4d f8	 mov	 ecx, DWORD PTR _currentptr$[ebp]
  00346	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  00349	89 55 f8	 mov	 DWORD PTR _currentptr$[ebp], edx
$L53058:

; 265  :               }

  0034c	eb 84		 jmp	 SHORT $L53054
$L53055:

; 266  :               if(n3==0){

  0034e	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _n3, 0
  00355	0f 85 d7 00 00
	00		 jne	 $L53071

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

  0035b	8b 45 08	 mov	 eax, DWORD PTR _startPtr$[ebp]
  0035e	83 38 00	 cmp	 DWORD PTR [eax], 0
  00361	74 52		 je	 SHORT $L53065
$L53064:

; 268  :                     while(State==1&&(*startPtr!=NULL)&&(StatusFloor==(*startPtr)->CallFloor)){//若为头结点 

  00363	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR _State, 1
  0036a	75 49		 jne	 SHORT $L53065
  0036c	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  0036f	83 39 00	 cmp	 DWORD PTR [ecx], 0
  00372	74 41		 je	 SHORT $L53065
  00374	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  00377	8b 02		 mov	 eax, DWORD PTR [edx]
  00379	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _StatusFloor
  0037f	3b 48 04	 cmp	 ecx, DWORD PTR [eax+4]
  00382	75 31		 jne	 SHORT $L53065

; 269  :                        tempptr=(*startPtr);

  00384	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  00387	8b 02		 mov	 eax, DWORD PTR [edx]
  00389	89 45 f4	 mov	 DWORD PTR _tempptr$[ebp], eax

; 270  : 		               ControlCallFlash(tempptr, FALSE);

  0038c	6a 00		 push	 0
  0038e	8b 4d f4	 mov	 ecx, DWORD PTR _tempptr$[ebp]
  00391	51		 push	 ecx
  00392	e8 00 00 00 00	 call	 _ControlCallFlash
  00397	83 c4 08	 add	 esp, 8

; 271  :                        *startPtr=(*startPtr)->Nextptr;

  0039a	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  0039d	8b 02		 mov	 eax, DWORD PTR [edx]
  0039f	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  003a2	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  003a5	89 11		 mov	 DWORD PTR [ecx], edx

; 272  :                        free(tempptr);

  003a7	8b 45 f4	 mov	 eax, DWORD PTR _tempptr$[ebp]
  003aa	50		 push	 eax
  003ab	e8 00 00 00 00	 call	 _free
  003b0	83 c4 04	 add	 esp, 4

; 273  :                     }

  003b3	eb ae		 jmp	 SHORT $L53064
$L53065:

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

  003b5	8b 4d 08	 mov	 ecx, DWORD PTR _startPtr$[ebp]
  003b8	83 39 00	 cmp	 DWORD PTR [ecx], 0
  003bb	74 75		 je	 SHORT $L53071

; 276  :                      currentptr=(*startPtr)->Nextptr;

  003bd	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  003c0	8b 02		 mov	 eax, DWORD PTR [edx]
  003c2	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  003c5	89 4d f8	 mov	 DWORD PTR _currentptr$[ebp], ecx

; 277  :                      previousptr=*startPtr;

  003c8	8b 55 08	 mov	 edx, DWORD PTR _startPtr$[ebp]
  003cb	8b 02		 mov	 eax, DWORD PTR [edx]
  003cd	89 45 fc	 mov	 DWORD PTR _previousptr$[ebp], eax
$L53070:

; 278  :                      while(currentptr!=NULL){

  003d0	83 7d f8 00	 cmp	 DWORD PTR _currentptr$[ebp], 0
  003d4	74 5c		 je	 SHORT $L53071

; 279  :                         if((currentptr->CallFloor==StatusFloor)&&State==1){

  003d6	8b 4d f8	 mov	 ecx, DWORD PTR _currentptr$[ebp]
  003d9	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  003dc	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _StatusFloor
  003e2	75 3d		 jne	 SHORT $L53072
  003e4	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR _State, 1
  003eb	75 34		 jne	 SHORT $L53072

; 280  :                            tempptr=currentptr;

  003ed	8b 45 f8	 mov	 eax, DWORD PTR _currentptr$[ebp]
  003f0	89 45 f4	 mov	 DWORD PTR _tempptr$[ebp], eax

; 281  : 				           ControlCallFlash(tempptr, FALSE);

  003f3	6a 00		 push	 0
  003f5	8b 4d f4	 mov	 ecx, DWORD PTR _tempptr$[ebp]
  003f8	51		 push	 ecx
  003f9	e8 00 00 00 00	 call	 _ControlCallFlash
  003fe	83 c4 08	 add	 esp, 8

; 282  :                            currentptr=currentptr->Nextptr;

  00401	8b 55 f8	 mov	 edx, DWORD PTR _currentptr$[ebp]
  00404	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00407	89 45 f8	 mov	 DWORD PTR _currentptr$[ebp], eax

; 283  :                            previousptr->Nextptr=currentptr;

  0040a	8b 4d fc	 mov	 ecx, DWORD PTR _previousptr$[ebp]
  0040d	8b 55 f8	 mov	 edx, DWORD PTR _currentptr$[ebp]
  00410	89 51 08	 mov	 DWORD PTR [ecx+8], edx

; 284  :                            free(tempptr);

  00413	8b 45 f4	 mov	 eax, DWORD PTR _tempptr$[ebp]
  00416	50		 push	 eax
  00417	e8 00 00 00 00	 call	 _free
  0041c	83 c4 04	 add	 esp, 4

; 286  :                         else{

  0041f	eb 0f		 jmp	 SHORT $L53073
$L53072:

; 287  :                            previousptr=currentptr;

  00421	8b 4d f8	 mov	 ecx, DWORD PTR _currentptr$[ebp]
  00424	89 4d fc	 mov	 DWORD PTR _previousptr$[ebp], ecx

; 288  :                            currentptr=currentptr->Nextptr;

  00427	8b 55 f8	 mov	 edx, DWORD PTR _currentptr$[ebp]
  0042a	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0042d	89 45 f8	 mov	 DWORD PTR _currentptr$[ebp], eax
$L53073:

; 290  :                      }

  00430	eb 9e		 jmp	 SHORT $L53070
$L53071:

; 296  : }

  00432	5f		 pop	 edi
  00433	5e		 pop	 esi
  00434	5b		 pop	 ebx
  00435	83 c4 4c	 add	 esp, 76			; 0000004cH
  00438	3b ec		 cmp	 ebp, esp
  0043a	e8 00 00 00 00	 call	 __chkesp
  0043f	8b e5		 mov	 esp, ebp
  00441	5d		 pop	 ebp
  00442	c3		 ret	 0
_Deletenode ENDP
_TEXT	ENDS
PUBLIC	_FreeNote
;	COMDAT _FreeNote
_TEXT	SEGMENT
_tempPtr$ = -4
_FreeNote PROC NEAR					; COMDAT

; 301  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 44	 sub	 esp, 68			; 00000044H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	8d 7d bc	 lea	 edi, DWORD PTR [ebp-68]
  0000c	b9 11 00 00 00	 mov	 ecx, 17			; 00000011H
  00011	b8 cc cc cc cc	 mov	 eax, -858993460		; ccccccccH
  00016	f3 ab		 rep stosd

; 302  : 	CALLPTR tempPtr;
; 303  : 
; 304  : 	tempPtr=ControlCallPTR;

  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR _ControlCallPTR
  0001d	89 45 fc	 mov	 DWORD PTR _tempPtr$[ebp], eax
$L53080:

; 305  : 	while(tempPtr!=NULL){

  00020	83 7d fc 00	 cmp	 DWORD PTR _tempPtr$[ebp], 0
  00024	74 1c		 je	 SHORT $L53081

; 306  : 		tempPtr=ControlCallPTR->Nextptr;

  00026	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _ControlCallPTR
  0002c	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  0002f	89 55 fc	 mov	 DWORD PTR _tempPtr$[ebp], edx

; 307  : 		free(ControlCallPTR);

  00032	a1 00 00 00 00	 mov	 eax, DWORD PTR _ControlCallPTR
  00037	50		 push	 eax
  00038	e8 00 00 00 00	 call	 _free
  0003d	83 c4 04	 add	 esp, 4

; 308  : 	}

  00040	eb de		 jmp	 SHORT $L53080
$L53081:

; 309  : }

  00042	5f		 pop	 edi
  00043	5e		 pop	 esi
  00044	5b		 pop	 ebx
  00045	83 c4 44	 add	 esp, 68			; 00000044H
  00048	3b ec		 cmp	 ebp, esp
  0004a	e8 00 00 00 00	 call	 __chkesp
  0004f	8b e5		 mov	 esp, ebp
  00051	5d		 pop	 ebp
  00052	c3		 ret	 0
_FreeNote ENDP
_TEXT	ENDS
END

⌨️ 快捷键说明

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