📄 cc1.asm
字号:
OR EAX,EAX
JNE _1_421
JMP _1_420
_1_421:
MOV EAX,[_cptr]
MOV EBX,1
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
OR EAX,EAX
JNE _1_423
JMP _1_422
_1_423:
MOV EAX,_1_414+12
PUSH EAX
MOV CL,1
CALL _error
ADD ESP,4
JMP _1_424
_1_422:
MOV EAX,[_cptr]
MOV EBX,1
ADD EAX,EBX
MOV EBX,EAX
MOV EAX,1
MOV [EBX],AL
_1_424:
_1_420:
_1_419:
JMP _1_425
_1_415:
MOV EAX,_ssname
PUSH EAX
XOR EAX,EAX
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR CL,CL
CALL _getlabel
PUSH EAX
MOV EAX,_locptr
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV CL,7
CALL _addsym
ADD ESP,28
MOV DWORD [_cptr],EAX
_1_425:
MOV EAX,[_cptr]
MOV EBX,5
ADD EAX,EBX
MOV EBX,2
ADD EAX,EBX
PUSH EAX
MOV EAX,4
PUSH EAX
MOV CL,2
CALL _getint
ADD ESP,8
POP EBP
RET
_1_414 DB 110,111,116,32,97,32,108,97,98,101
DB 108,0,100,117,112,108,105,99,97,116
DB 101,32,108,97,98,101,108,0
_doreturn:
PUSH EBP
MOV EBP,ESP
ADD ESP,-4
XOR CL,CL
CALL _endst
OR EAX,EAX
JE _1_428
JMP _1_427
_1_428:
MOV EAX,1
PUSH EAX
MOV CL,1
CALL _doexpr
ADD ESP,4
_1_427:
LEA EAX,[EBP-4]
PUSH EAX
MOV EAX,[_csp]
POP EBX
MOV [EBX],EAX
MOV EAX,67
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV DWORD [_csp],EAX
MOV ESP,EBP
POP EBP
RET
_dobreak:
PUSH EBP
MOV EBP,ESP
ADD ESP,-4
LEA EAX,[EBP-4]
PUSH EAX
MOV EAX,[_wqptr]
PUSH EAX
MOV CL,1
CALL _readwhil
ADD ESP,4
POP EBX
MOV [EBX],EAX
OR EAX,EAX
JE _1_431
JMP _1_430
_1_431:
MOV ESP,EBP
POP EBP
RET
_1_430:
MOV EAX,2
PUSH EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
MOV EAX,40
PUSH EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,8
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
MOV ESP,EBP
POP EBP
RET
_docont:
PUSH EBP
MOV EBP,ESP
ADD ESP,-4
LEA EAX,[EBP-4]
PUSH EAX
MOV EAX,[_wqptr]
POP EBX
MOV [EBX],EAX
_1_433:
LEA EAX,[EBP-4]
PUSH EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,1
CALL _readwhil
ADD ESP,4
POP EBX
MOV [EBX],EAX
OR EAX,EAX
JE _1_436
JMP _1_435
_1_436:
MOV ESP,EBP
POP EBP
RET
_1_435:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,4
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
OR EAX,EAX
JNE _1_438
JMP _1_437
_1_438:
JMP _1_434
_1_437:
JMP _1_433
_1_434:
MOV EAX,2
PUSH EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
MOV EAX,40
PUSH EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,4
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
MOV ESP,EBP
POP EBP
RET
_doasm:
PUSH EBP
MOV EBP,ESP
XOR EAX,EAX
MOV DWORD [_ccode],EAX
_1_440:
XOR CL,CL
CALL _inline
MOV EAX,_1_439+0
PUSH EAX
MOV CL,1
CALL _match
ADD ESP,4
OR EAX,EAX
JNE _1_443
JMP _1_442
_1_443:
JMP _1_441
_1_442:
MOV EAX,[_eof]
OR EAX,EAX
JNE _1_445
JMP _1_444
_1_445:
JMP _1_441
_1_444:
MOV EAX,[_line]
PUSH EAX
MOV EAX,[_output]
PUSH EAX
MOV CL,2
CALL _fputs
ADD ESP,8
JMP _1_440
_1_441:
XOR CL,CL
CALL _kill
MOV EAX,1
MOV DWORD [_ccode],EAX
POP EBP
RET
_1_439 DB 35,101,110,100,97,115,109,0
_doexpr:
PUSH EBP
MOV EBP,ESP
ADD ESP,-16
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV DWORD [_usexpr],EAX
_1_447:
LEA EAX,[EBP-12]
PUSH EAX
LEA EAX,[EBP-16]
PUSH EAX
MOV CL,2
CALL _setstage
ADD ESP,8
LEA EAX,[EBP-4]
PUSH EAX
LEA EAX,[EBP-8]
PUSH EAX
MOV CL,2
CALL _expressi
ADD ESP,8
LEA EAX,[EBP-12]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _clearsta
ADD ESP,8
MOV EAX,[_ch]
MOV EBX,EAX
MOV EAX,44
CALL __ne
OR EAX,EAX
JNE _1_450
JMP _1_449
_1_450:
JMP _1_448
_1_449:
MOV EAX,1
PUSH EAX
MOV CL,1
CALL _bump
ADD ESP,4
JMP _1_447
_1_448:
MOV EAX,1
MOV DWORD [_usexpr],EAX
MOV ESP,EBP
POP EBP
RET
_ask:
PUSH EBP
MOV EBP,ESP
ADD ESP,-8
LEA EAX,[EBP-4]
PUSH EAX
XOR EAX,EAX
MOV DWORD [_nxtlab],EAX
MOV DWORD [_listfp],EAX
POP EBX
MOV [EBX],EAX
MOV EAX,__iob
MOV EBX,32
ADD EAX,EBX
MOV DWORD [_output],EAX
XOR EAX,EAX
MOV BYTE [_optimize],AL
XOR EAX,EAX
MOV BYTE [_pause],AL
MOV BYTE [_monitor],AL
MOV BYTE [_alarm],AL
MOV EAX,[_mline]
MOV DWORD [_line],EAX
_1_452:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
INC EAX
MOV [EBX],EAX
PUSH EAX
MOV EAX,[_line]
PUSH EAX
MOV EAX,128
PUSH EAX
MOV EAX,[_argcs]
PUSH EAX
MOV EAX,[_argvs]
PUSH EAX
MOV CL,5
CALL _getarg
ADD ESP,20
MOV EBX,EAX
MOV EAX,-1
CALL __ne
OR EAX,EAX
JNE _1_454
JMP _1_453
_1_454:
MOV EAX,[_line]
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,45
CALL __ne
OR EAX,EAX
JNE _1_458
JMP _1_456
_1_458:
MOV EAX,[_line]
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,47
CALL __ne
OR EAX,EAX
JNE _1_459
JMP _1_456
_1_459:
MOV EAX,1
JMP _1_457
_1_456:
XOR EAX,EAX
_1_457:
OR EAX,EAX
JNE _1_460
JMP _1_455
_1_460:
JMP _1_452
_1_455:
MOV EAX,[_line]
MOV EBX,1
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
PUSH EAX
MOV CL,1
CALL _toupper
ADD ESP,4
MOV EBX,EAX
MOV EAX,76
CALL __eq
OR EAX,EAX
JNE _1_464
JMP _1_462
_1_464:
MOV EAX,[_line]
MOV EBX,2
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
PUSH EAX
MOV CL,1
CALL _isdigit
ADD ESP,4
OR EAX,EAX
JNE _1_465
JMP _1_462
_1_465:
MOV EAX,[_line]
MOV EBX,3
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,32
CALL __le
OR EAX,EAX
JNE _1_466
JMP _1_462
_1_466:
MOV EAX,1
JMP _1_463
_1_462:
XOR EAX,EAX
_1_463:
OR EAX,EAX
JNE _1_467
JMP _1_461
_1_467:
MOV EAX,[_line]
MOV EBX,2
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,48
XCHG EAX,EBX
SUB EAX,EBX
MOV DWORD [_listfp],EAX
JMP _1_452
_1_461:
MOV EAX,[_line]
MOV EBX,1
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
PUSH EAX
MOV CL,1
CALL _toupper
ADD ESP,4
MOV EBX,EAX
MOV EAX,78
CALL __eq
OR EAX,EAX
JNE _1_471
JMP _1_469
_1_471:
MOV EAX,[_line]
MOV EBX,2
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
PUSH EAX
MOV CL,1
CALL _toupper
ADD ESP,4
MOV EBX,EAX
MOV EAX,79
CALL __eq
OR EAX,EAX
JNE _1_472
JMP _1_469
_1_472:
MOV EAX,[_line]
MOV EBX,3
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,32
CALL __le
OR EAX,EAX
JNE _1_473
JMP _1_469
_1_473:
MOV EAX,1
JMP _1_470
_1_469:
XOR EAX,EAX
_1_470:
OR EAX,EAX
JNE _1_474
JMP _1_468
_1_474:
XOR EAX,EAX
MOV BYTE [_optimize],AL
JMP _1_452
_1_468:
MOV EAX,[_line]
MOV EBX,1
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
PUSH EAX
MOV CL,1
CALL _toupper
ADD ESP,4
MOV EBX,EAX
MOV EAX,68
CALL __eq
OR EAX,EAX
JNE _1_476
JMP _1_475
_1_476:
LEA EAX,[EBP-8]
MOV EBX,EAX
XOR EAX,EAX
MOV [EBX],EAX
MOV EAX,[_line]
PUSH EAX
LEA EAX,[EBP-8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,2
ADD EAX,EBX
POP EBX
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV DWORD [_ch],EAX
MOV EAX,[_line]
PUSH EAX
LEA EAX,[EBP-8]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
ADD EAX,EBX
MOV EBX,2
ADD EAX,EBX
MOV DWORD [_lptr],EAX
XOR CL,CL
CALL _dodefine
JMP _1_452
_1_475:
MOV EAX,[_line]
MOV EBX,2
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,32
CALL __le
OR EAX,EAX
JNE _1_478
JMP _1_477
_1_478:
MOV EAX,[_line]
MOV EBX,1
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
PUSH EAX
MOV CL,1
CALL _toupper
ADD ESP,4
MOV EBX,EAX
MOV EAX,65
CALL __eq
OR EAX,EAX
JNE _1_480
JMP _1_479
_1_480:
MOV EAX,1
MOV BYTE [_alarm],AL
JMP _1_452
_1_479:
MOV EAX,[_line]
MOV EBX,1
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
PUSH EAX
MOV CL,1
CALL _toupper
ADD ESP,4
MOV EBX,EAX
MOV EAX,77
CALL __eq
OR EAX,EAX
JNE _1_482
JMP _1_481
_1_482:
MOV EAX,1
MOV BYTE [_monitor],AL
JMP _1_452
_1_481:
MOV EAX,[_line]
MOV EBX,1
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
PUSH EAX
MOV CL,1
CALL _toupper
ADD ESP,4
MOV EBX,EAX
MOV EAX,80
CALL __eq
OR EAX,EAX
JNE _1_484
JMP _1_483
_1_484:
MOV EAX,1
MOV BYTE [_pause],AL
JMP _1_452
_1_483:
_1_477:
MOV EAX,_1_451+0
PUSH EAX
MOV EAX,__iob
MOV EBX,64
ADD EAX,EBX
PUSH EAX
MOV CL,2
CALL _fputs
ADD ESP,8
MOV EAX,_1_451+57
PUSH EAX
MOV EAX,__iob
MOV EBX,64
ADD EAX,EBX
PUSH EAX
MOV CL,2
CALL _fputs
ADD ESP,8
MOV EAX,_1_451+74
PUSH EAX
MOV EAX,__iob
MOV EBX,64
ADD EAX,EBX
PUSH EAX
MOV CL,2
CALL _fputs
ADD ESP,8
MOV EAX,_1_451+89
PUSH EAX
MOV EAX,__iob
MOV EBX,64
ADD EAX,EBX
PUSH EAX
MOV CL,2
CALL _fputs
ADD ESP,8
MOV EAX,_1_451+104
PUSH EAX
MOV EAX,__iob
MOV EBX,64
ADD EAX,EBX
PUSH EAX
MOV CL,2
CALL _fputs
ADD ESP,8
MOV EAX,_1_451+118
PUSH EAX
MOV EAX,__iob
MOV EBX,64
ADD EAX,EBX
PUSH EAX
MOV CL,2
CALL _fputs
ADD ESP,8
MOV EAX,_1_451+139
PUSH EAX
MOV EAX,__iob
MOV EBX,64
ADD EAX,EBX
PUSH EAX
MOV CL,2
CALL _fputs
ADD ESP,8
MOV EAX,7
PUSH EAX
MOV CL,1
CALL _OS_exit
ADD ESP,4
JMP _1_452
_1_453:
MOV ESP,EBP
POP EBP
RET
_1_451 DB 117,115,97,103,101,58,32,99,99,32
DB 91,102,105,108,101,93,46,46,46,32
DB 91,45,109,93,32,91,45,97,93,32
DB 91,45,112,93,32,91,45,108,35,93
DB 32,91,45,110,111,93,32,91,45,100
DB 60,105,100,62,93,10,0,32,45,109
DB 32,32,32,32,32,109,111,110,105,116
DB 111,114,10,0,32,45,97,32,32,32
DB 32,32,97,108,97,114,109,10,0,32
DB 45,112,32,32,32,32,32,112,97,117
DB 115,101,10,0,32,45,108,35,32,32
DB 32,32,108,105,115,116,10,0,32,45
DB 110,111,32,32,32,32,110,111,32,111
DB 112,116,105,109,105,122,101,10,0,32
DB 45,100,60,105,100,62,32,112,114,101
DB 45,35,100,101,102,105,110,101,32,105
DB 100,10,0
_openfile:
PUSH EBP
MOV EBP,ESP
ADD ESP,-28
MOV EAX,-1
MOV DWORD [_input],EAX
_1_486:
MOV EAX,[_filearg]
INC EAX
MOV DWORD [_filearg],EAX
PUSH EAX
MOV EAX,[_pline]
PUSH EAX
MOV EAX,128
PUSH EAX
MOV EAX,[_argcs]
PUSH EAX
MOV EAX,[_argvs]
PUSH EAX
MOV CL,5
CALL _getarg
ADD ESP,20
MOV EBX,EAX
MOV EAX,-1
CALL __ne
OR EAX,EAX
JNE _1_488
JMP _1_487
_1_488:
MOV EAX,[_pline]
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,45
CALL __eq
OR EAX,EAX
JE _1_492
JMP _1_490
_1_492:
MOV EAX,[_pline]
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,47
CALL __eq
OR EAX,EAX
JE _1_493
JMP _1_490
_1_493:
XOR EAX,EAX
JMP _1_491
_1_490:
MOV EAX,1
_1_491:
OR EAX,EAX
JNE _1_494
JMP _1_489
_1_494:
JMP _1_486
_1_489:
LEA EAX,[EBP-28]
MOV EBX,EAX
XOR EAX,EAX
MOV [EBX],EAX
LEA EAX,[EBP-20]
MOV EBX,EAX
MOV EAX,-1
MOV [EBX],EAX
LEA EAX,[EBP-24]
MOV EBX,EAX
XOR EAX,EAX
MOV [EBX],EAX
_1_495:
MOV EAX,[_pline]
PUSH EAX
LEA EAX,[EBP-20]
MOV EBX,EAX
MOV EAX, [EBX]
INC EAX
MOV [EBX],EAX
POP EBX
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
OR EAX,EAX
JNE _1_497
JMP _1_496
_1_497:
MOV EAX,[_pline]
PUSH EAX
LEA EAX,[EBP-20]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,46
CALL __eq
OR EAX,EAX
JNE _1_499
JMP _1_498
_1_499:
LEA EAX,[EBP-28]
MOV EBX,EAX
MOV EAX,1
MOV [EBX],EAX
JMP _1_496
_1_498:
LEA EAX,[EBP-24]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,10
CALL __lt
OR EAX,EAX
JNE _1_501
JMP _1_500
_1_501:
LEA EAX,[EBP-16]
PUSH EAX
LEA EAX,[EBP-24]
MOV EBX,EAX
MOV EAX, [EBX]
INC EAX
MOV [EBX],EAX
DEC EAX
POP EBX
ADD EAX,EBX
PUSH EAX
MOV EAX,[_pline]
PUSH EAX
LEA EAX,[EBP-20]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
ADD EAX,EBX
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
POP EBX
MOV [EBX],AL
_1_500:
JMP _1_495
_1_496:
LEA EAX,[EBP-28]
MOV EBX,EAX
MOV EAX, [EBX]
CALL __lneg
OR EAX,EAX
JNE _1_503
JMP _1_502
_1_503:
MOV EAX,[_pline]
PUSH EAX
LEA EAX,[EBP-20]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
ADD EAX,EBX
PUSH EAX
MOV EAX,_1_485+0
PUSH EAX
MOV CL,2
CALL _strcpy
ADD ESP,8
_1_502:
MOV EAX,[_pline]
PUSH EAX
MOV EAX,_1_485+3
PUSH EAX
MOV CL,2
CALL _mustopen
ADD ESP,8
MOV DWORD [_input],EAX
MOV EAX,[_files]
CALL __lneg
OR EAX,EAX
JNE _1_505
JMP _1_504
_1_505:
LEA EAX,[EBP-16]
PUSH EAX
LEA EAX,[EBP-24]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
ADD EAX,EBX
PUSH EAX
MOV EAX,_1_485+5
PUSH EAX
MOV CL,2
CALL _strcpy
ADD ESP,8
LEA EAX,[EBP-16]
PUSH EAX
MOV EAX,_1_485+10
PUSH EAX
MOV CL,2
CALL _mustopen
ADD ESP,8
MOV DWORD [_output],EAX
_1_504:
MOV EAX,1
MOV DWORD [_files],EAX
XOR CL,CL
CALL _kill
MOV ESP,EBP
POP EBP
RET
JMP _1_486
_1_487:
MOV EAX,[_files]
INC EAX
MOV DWORD [_files],EAX
DEC EAX
OR EAX,EAX
JNE _1_507
JMP _1_506
_1_507:
MOV EAX,1
MOV DWORD [_eof],EAX
JMP _1_508
_1_506:
MOV EAX,__iob
MOV DWORD [_input],EAX
_1_508:
XOR CL,CL
CALL _kill
MOV ESP,EBP
POP EBP
RET
_1_485 DB 46,67,0,114,0,46,65,83,77,0
DB 119,0
_mustopen:
PUSH EBP
MOV EBP,ESP
ADD ESP,-4
LEA EAX,[EBP-4]
PUSH EAX
LEA EAX,[EBP+12]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _OS_fopen
ADD ESP,8
POP EBX
MOV [EBX],EAX
OR EAX,EAX
JNE _1_511
JMP _1_510
_1_511:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV ESP,EBP
POP EBP
RET
_1_510:
MOV EAX,_1_509+0
PUSH EAX
MOV EAX,__iob
MOV EBX,64
ADD EAX,E
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -