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

📄 cc4.asm

📁 small c complier 它也Menuet OS的一个附件,同样他也是有汇编实现
💻 ASM
📖 第 1 页 / 共 4 页
字号:
   
_dumplits:
PUSH EBP
MOV EBP,ESP
ADD ESP,-8
LEA EAX,[EBP-8]
MOV EBX,EAX
XOR EAX,EAX
MOV [EBX],EAX
_4_83:
LEA EAX,[EBP-8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV EAX,[_litptr]
POP EBX
CALL __lt
OR EAX,EAX
JNE _4_85
JMP _4_84
_4_85:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,1
CALL __eq
OR EAX,EAX
JNE _4_87
JMP _4_86
_4_87:
MOV EAX,10
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
JMP _4_88
_4_86:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,2
CALL __eq
OR EAX,EAX
JNE _4_90
JMP _4_89
_4_90:
MOV EAX,37
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
JMP _4_91
_4_89:
MOV EAX,111
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
_4_91:
_4_88:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX,10
MOV [EBX],EAX
_4_92:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
DEC EAX
MOV [EBX],EAX
INC EAX
OR EAX,EAX
JNE _4_94
JMP _4_93
_4_94:
MOV EAX,[_litq]
PUSH EAX
LEA EAX,[EBP-8]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
ADD EAX,EBX
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _getint
ADD ESP,8
PUSH EAX
MOV CL,1
CALL _outdec
ADD ESP,4
LEA EAX,[EBP-8]
PUSH EAX
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
ADD EAX,EBX
POP EBX
MOV [EBX],EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
XOR EAX,EAX
CALL __eq
OR EAX,EAX
JE _4_98
JMP _4_96
_4_98:
LEA EAX,[EBP-8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV EAX,[_litptr]
POP EBX
CALL __ge
OR EAX,EAX
JE _4_99
JMP _4_96
_4_99:
XOR EAX,EAX
JMP _4_97
_4_96:
MOV EAX,1
_4_97:
OR EAX,EAX
JNE _4_100
JMP _4_95
_4_100:
XOR CL,CL
CALL _newline
JMP _4_93
_4_95:
MOV EAX,44
PUSH EAX
MOV EAX,[_output]
PUSH EAX
MOV CL,2
CALL _OS_fputc
ADD ESP,8
JMP _4_92
_4_93:
JMP _4_83
_4_84:
MOV ESP,EBP
POP EBP
RET
   
_dumpzero:
PUSH EBP
MOV EBP,ESP
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
OR EAX,EAX
JG _4_103
JMP _4_102
_4_103:
LEA EAX,[EBP+12]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,1
CALL __eq
OR EAX,EAX
JNE _4_105
JMP _4_104
_4_105:
MOV EAX,12
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
JMP _4_106
_4_104:
LEA EAX,[EBP+12]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,2
CALL __eq
OR EAX,EAX
JNE _4_108
JMP _4_107
_4_108:
MOV EAX,39
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
JMP _4_109
_4_107:
MOV EAX,113
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _gen
ADD ESP,8
_4_109:
_4_106:
_4_102:
POP EBP
RET
   
_peep:
PUSH EBP
MOV EBP,ESP
ADD ESP,-32
LEA EAX,[EBP-4]
PUSH EAX
MOV EAX,[_snext]
POP EBX
MOV [EBX],EAX
LEA EAX,[EBP-8]
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
INC EAX
INC EAX
INC EAX
INC EAX
MOV [EBX],EAX
DEC EAX
DEC EAX
DEC EAX
DEC EAX
POP EBX
MOV [EBX],EAX
_4_111:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
OR EAX,EAX
JNE _4_113
JMP _4_112
_4_113:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
JMP _4_116
_4_117:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV EAX,[_stail]
POP EBX
CALL __ult
OR EAX,EAX
JNE _4_119
JMP _4_118
_4_119:
JMP _4_115
_4_118:
XOR EAX,EAX
MOV ESP,EBP
POP EBP
RET
_4_120:
MOV EAX,24
PUSH EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _isfree
ADD ESP,8
OR EAX,EAX
JNE _4_122
JMP _4_121
_4_122:
JMP _4_115
_4_121:
XOR EAX,EAX
MOV ESP,EBP
POP EBP
RET
_4_123:
MOV EAX,3
PUSH EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,2
CALL _isfree
ADD ESP,8
OR EAX,EAX
JNE _4_125
JMP _4_124
_4_125:
JMP _4_115
_4_124:
XOR EAX,EAX
MOV ESP,EBP
POP EBP
RET
_4_126:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,128
AND EAX,EBX
OR EAX,EAX
JNE _4_128
JMP _4_127
_4_128:
JMP _4_115
_4_127:
XOR EAX,EAX
MOV ESP,EBP
POP EBP
RET
_4_129:
LEA EAX,[EBP-12]
PUSH EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV CL,1
CALL _getpop
ADD ESP,4
POP EBX
MOV [EBX],EAX
OR EAX,EAX
JNE _4_131
JMP _4_130
_4_131:
JMP _4_115
_4_130:
XOR EAX,EAX
MOV ESP,EBP
POP EBP
RET
_4_132:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV EAX,[_stail]
POP EBX
CALL __uge
OR EAX,EAX
JE _4_136
JMP _4_134
_4_136:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
CALL __ne
OR EAX,EAX
JE _4_137
JMP _4_134
_4_137:
XOR EAX,EAX
JMP _4_135
_4_134:
MOV EAX,1
_4_135:
OR EAX,EAX
JNE _4_138
JMP _4_133
_4_138:
XOR EAX,EAX
MOV ESP,EBP
POP EBP
RET
_4_133:
JMP _4_115
_4_116:
CALL __switch
 DD _4_117
 DD 255
 DD _4_120
 DD 253
 DD _4_123
 DD 252
 DD _4_126
 DD 251
 DD _4_129
 DD 254
 DD 0
JMP _4_132
_4_115:
LEA EAX,[EBP-4]
PUSH EAX
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,8
ADD EAX,EBX
POP EBX
MOV [EBX],EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
INC EAX
INC EAX
INC EAX
INC EAX
MOV [EBX],EAX
JMP _4_111
_4_112:
LEA EAX,[EBP-8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,1
ADD EAX,EBX
POP EBX
MOV [EBX],EAX
LEA EAX,[EBP-28]
PUSH EAX
LEA EAX,[EBP-20]
MOV EBX,EAX
XOR EAX,EAX
MOV [EBX],EAX
POP EBX
MOV [EBX],EAX
_4_139:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
INC EAX
INC EAX
INC EAX
INC EAX
MOV [EBX],EAX
MOV EBX,EAX
MOV EAX, [EBX]
OR EAX,EAX
JE _4_143
JMP _4_141
_4_143:
LEA EAX,[EBP-20]
MOV EBX,EAX
MOV EAX, [EBX]
OR EAX,EAX
JE _4_144
JMP _4_141
_4_144:
XOR EAX,EAX
JMP _4_142
_4_141:
MOV EAX,1
_4_142:
OR EAX,EAX
JNE _4_145
JMP _4_140
_4_145:
LEA EAX,[EBP-20]
MOV EBX,EAX
MOV EAX, [EBX]
OR EAX,EAX
JNE _4_147
JMP _4_146
_4_147:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
OR EAX,EAX
JE _4_149
JMP _4_148
_4_149:
LEA EAX,[EBP-20]
MOV EBX,EAX
XOR EAX,EAX
MOV [EBX],EAX
_4_148:
JMP _4_139
_4_146:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,116
CALL __ge
OR EAX,EAX
JNE _4_151
JMP _4_150
_4_151:
LEA EAX,[EBP-32]
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,255
AND EAX,EBX
POP EBX
MOV [EBX],AL
LEA EAX,[EBP-16]
PUSH EAX
LEA EAX,[EBP-32]
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
POP EBX
MOV [EBX],EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,65280
AND EAX,EBX
JMP _4_154
_4_155:
MOV EAX,[_snext]
MOV EBX,4
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
CALL __ne
OR EAX,EAX
JNE _4_157
JMP _4_156
_4_157:
LEA EAX,[EBP-20]
MOV EBX,EAX
MOV EAX,1
MOV [EBX],EAX
_4_156:
JMP _4_153
_4_158:
MOV EAX,[_snext]
MOV EBX,4
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
CALL __ge
OR EAX,EAX
JNE _4_160
JMP _4_159
_4_160:
LEA EAX,[EBP-20]
MOV EBX,EAX
MOV EAX,1
MOV [EBX],EAX
_4_159:
JMP _4_153
_4_161:
MOV EAX,[_snext]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,1
MOV ECX,EAX
MOV EAX,EBX
SAL EAX,CL
POP EBX
SHL EAX,1
SHL EAX,1
ADD EAX,EBX
MOV DWORD [_snext],EAX
JMP _4_153
_4_162:
MOV EAX,[_snext]
PUSH EAX
MOV EAX,[_snext]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,1
MOV ECX,EAX
MOV EAX,EBX
SAL EAX,CL
POP EBX
SHL EAX,1
SHL EAX,1
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
MOV [EBX],EAX
JMP _4_163
_4_164:
MOV EAX,[_snext]
MOV EBX,4
ADD EAX,EBX
PUSH EAX
MOV EAX,[_snext]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,1
MOV ECX,EAX
MOV EAX,EBX
SAL EAX,CL
MOV EBX,1
ADD EAX,EBX
POP EBX
SHL EAX,1
SHL EAX,1
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
MOV [EBX],EAX
JMP _4_163
_4_165:
MOV EAX,[_snext]
MOV EBX,4
ADD EAX,EBX
PUSH EAX
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV EAX,[_snext]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,1
MOV ECX,EAX
MOV EAX,EBX
SAL EAX,CL
MOV EBX,1
ADD EAX,EBX
POP EBX
SHL EAX,1
SHL EAX,1
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
ADD EAX,EBX
POP EBX
MOV [EBX],EAX
JMP _4_163
_4_166:
MOV EAX,[_snext]
MOV EBX,4
ADD EAX,EBX
PUSH EAX
MOV EAX,[_snext]
MOV EBX,4
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
NEG EAX
POP EBX
MOV [EBX],EAX
JMP _4_163
_4_167:
LEA EAX,[EBP-12]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
MOV [EBX],EAX
LEA EAX,[EBP-12]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,4
ADD EAX,EBX
PUSH EAX
MOV EAX,[_snext]
MOV EBX,4
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
MOV [EBX],EAX
JMP _4_163
_4_168:
LEA EAX,[EBP-24]
PUSH EAX
MOV EAX,[_snext]
MOV EBX,4
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
MOV [EBX],EAX
MOV EAX,[_snext]
MOV EBX,4
ADD EAX,EBX
PUSH EAX
MOV EAX,[_snext]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,1
MOV ECX,EAX
MOV EAX,EBX
SAL EAX,CL
MOV EBX,1
ADD EAX,EBX
POP EBX
SHL EAX,1
SHL EAX,1
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
MOV [EBX],EAX
MOV EAX,[_snext]
PUSH EAX
LEA EAX,[EBP-16]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,1
MOV ECX,EAX
MOV EAX,EBX
SAL EAX,CL
MOV EBX,1
ADD EAX,EBX
POP EBX
SHL EAX,1
SHL EAX,1
ADD EAX,EBX
PUSH EAX
LEA EAX,[EBP-24]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
MOV [EBX],EAX
_4_163:
LEA EAX,[EBP-28]
MOV EBX,EAX
MOV EAX,1
MOV [EBX],EAX
JMP _4_153
JMP _4_153
_4_154:
CALL __switch
 DD _4_155
 DD 1536
 DD _4_158
 DD 1792
 DD _4_161
 DD 256
 DD _4_162
 DD 512
 DD _4_164
 DD 768
 DD _4_165
 DD 1024
 DD _4_166
 DD 1280
 DD _4_167
 DD 2304
 DD _4_168
 DD 2048
 DD 0
_4_153:
JMP _4_169
_4_150:
MOV EAX,[_snext]
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
MOV [EBX],EAX
_4_169:
JMP _4_139
_4_140:
LEA EAX,[EBP-28]
MOV EBX,EAX
MOV EAX, [EBX]
MOV ESP,EBP
POP EBP
RET
   
_isfree:
PUSH EBP
MOV EBP,ESP
ADD ESP,-4
_4_171:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV EAX,[_stail]
POP EBX
CALL __ult
OR EAX,EAX
JNE _4_173
JMP _4_172
_4_173:
LEA EAX,[EBP-4]
PUSH EAX
MOV EAX,_code
PUSH EAX
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
SHL EAX,1
SHL EAX,1
ADD EAX,EBX
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
MOV [EBX],EAX
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,9
AND EAX,EBX
PUSH EAX
LEA EAX,[EBP+12]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
AND EAX,EBX
OR EAX,EAX
JNE _4_175
JMP _4_174
_4_175:
XOR EAX,EAX
MOV ESP,EBP
POP EBP
RET
_4_174:
LEA EAX,[EBP-4]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOVSX EAX,BYTE [EBX]
MOV EBX,EAX
MOV EAX,18
AND EAX,EBX
PUSH EAX
LEA EAX,[EBP+12]
MOV EBX,EAX
MOV EAX, [EBX]
POP EBX
AND EAX,EBX
OR EAX,EAX
JNE _4_177
JMP _4_176
_4_177:
MOV EAX,1
MOV ESP,EBP
POP EBP
RET
_4_176:
LEA EAX,[EBP+8]
PUSH EAX
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,8
ADD EAX,EBX
POP EBX
MOV [EBX],EAX
JMP _4_171
_4_172:
MOV EAX,[_usexpr]
OR EAX,EAX
JNE _4_179
JMP _4_178
_4_179:
LEA EAX,[EBP+12]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,1
AND EAX,EBX
MOV ESP,EBP
POP EBP
RET
_4_178:
MOV EAX,1
MOV ESP,EBP
POP EBP
RET
_4_180:
MOV ESP,EBP
POP EBP
RET
   
_getpop:
PUSH EBP
MOV EBP,ESP
ADD ESP,-8
LEA EAX,[EBP-8]
MOV EBX,EAX
XOR EAX,EAX
MOV [EBX],EAX
_4_182:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX
MOV EAX,[_stail]
POP EBX
CALL __uge
OR EAX,EAX
JNE _4_185
JMP _4_184
_4_185:
XOR EAX,EAX
MOV ESP,EBP
POP EBP
RET
_4_184:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,59
CALL __eq
OR EAX,EAX
JNE _4_187
JMP _4_186
_4_187:
LEA EAX,[EBP-8]
MOV EBX,EAX
MOV EAX, [EBX]
OR EAX,EAX
JNE _4_189
JMP _4_188
_4_189:
LEA EAX,[EBP-8]
MOV EBX,EAX
MOV EAX, [EBX]
DEC EAX
MOV [EBX],EAX
JMP _4_190
_4_188:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV ESP,EBP
POP EBP
RET
_4_190:
JMP _4_191
_4_186:
LEA EAX,[EBP+8]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX, [EBX]
MOV EBX,EAX
MOV EAX,2
CALL __eq
OR EAX,EAX
JNE _4_193
JMP _4_192
_4_193:
LEA EAX,[EBP-8]
PUSH EAX
MOV EBX,EAX
MOV EAX, [EBX]
PUSH EAX

⌨️ 快捷键说明

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