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 + -
显示快捷键?