?? cc1.asm
字號:
JMP _161
_160:
MOV AX,OFFSET _153+9
PUSH AX
MOV AX,8
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _162
MOV AX,OFFSET _153+18
PUSH AX
MOV AX,4
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _163
MOV AX,5
PUSH AX
MOV CL,1
CALL _declloc
ADD SP,2
XOR CL,CL
CALL _ns
JMP _164
_163:
MOV AX,OFFSET _153+23
PUSH AX
MOV AX,3
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
MOV AX,9
PUSH AX
MOV CL,1
CALL _declloc
ADD SP,2
XOR CL,CL
CALL _ns
_164:
JMP _165
_162:
MOV AX,_declared
OR AX,AX
JGE $+5
JMP _166
MOV BX,_ncmp
MOV AX,1
CALL __gt
OR AX,AX
JNE $+5
JMP _167
MOV AX,_declared
MOV _nogo,AX
_167:
MOV AX,2
PUSH AX
MOV BX,_declared
MOV AX,_csp
SUB AX,BX
PUSH AX
MOV CL,2
CALL _gen
ADD SP,4
MOV _declared,-1
_166:
MOV AX,OFFSET _153+27
PUSH AX
MOV CL,1
CALL _match
ADD SP,2
OR AX,AX
JNE $+5
JMP _168
XOR CL,CL
CALL _compound
JMP _169
_168:
MOV AX,OFFSET _153+29
PUSH AX
MOV AX,2
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _170
XOR CL,CL
CALL _doif
MOV _lastst,1
JMP _171
_170:
MOV AX,OFFSET _153+32
PUSH AX
MOV AX,5
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _172
XOR CL,CL
CALL _dowhile
MOV _lastst,2
JMP _173
_172:
MOV AX,OFFSET _153+38
PUSH AX
MOV AX,2
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _174
XOR CL,CL
CALL _dodo
MOV _lastst,8
JMP _175
_174:
MOV AX,OFFSET _153+41
PUSH AX
MOV AX,3
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _176
XOR CL,CL
CALL _dofor
MOV _lastst,9
JMP _177
_176:
MOV AX,OFFSET _153+45
PUSH AX
MOV AX,6
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _178
XOR CL,CL
CALL _doswitch
MOV _lastst,10
JMP _179
_178:
MOV AX,OFFSET _153+52
PUSH AX
MOV AX,4
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _180
XOR CL,CL
CALL _docase
MOV _lastst,11
JMP _181
_180:
MOV AX,OFFSET _153+57
PUSH AX
MOV AX,7
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _182
XOR CL,CL
CALL _dodefaul
MOV _lastst,12
JMP _183
_182:
MOV AX,OFFSET _153+65
PUSH AX
MOV AX,4
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _184
XOR CL,CL
CALL _dogoto
MOV _lastst,13
JMP _185
_184:
XOR CL,CL
CALL _dolabel
OR AX,AX
JNE $+5
JMP _186
MOV _lastst,14
JMP _187
_186:
MOV AX,OFFSET _153+70
PUSH AX
MOV AX,6
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _188
XOR CL,CL
CALL _doreturn
XOR CL,CL
CALL _ns
MOV _lastst,3
JMP _189
_188:
MOV AX,OFFSET _153+77
PUSH AX
MOV AX,5
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _190
XOR CL,CL
CALL _dobreak
XOR CL,CL
CALL _ns
MOV _lastst,4
JMP _191
_190:
MOV AX,OFFSET _153+83
PUSH AX
MOV AX,8
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JNE $+5
JMP _192
XOR CL,CL
CALL _docont
XOR CL,CL
CALL _ns
MOV _lastst,5
JMP _193
_192:
MOV AX,OFFSET _153+92
PUSH AX
MOV CL,1
CALL _match
ADD SP,2
OR AX,AX
JNE $+5
JMP _194
MOV _errflag,0
JMP _195
_194:
MOV AX,OFFSET _153+94
PUSH AX
MOV CL,1
CALL _match
ADD SP,2
OR AX,AX
JNE $+5
JMP _196
XOR CL,CL
CALL _doasm
MOV _lastst,6
JMP _197
_196:
MOV AX,OFFSET _NO
PUSH AX
MOV CL,1
CALL _doexpr
ADD SP,2
XOR CL,CL
CALL _ns
MOV _lastst,7
_197:
_195:
_193:
_191:
_189:
_187:
_185:
_183:
_181:
_179:
_177:
_175:
_173:
_171:
_169:
_165:
_161:
_159:
_157:
MOV AX,_lastst
POP BP
RET
CODE ENDS
DATA SEGMENT PUBLIC
_153 DB 99,104,97,114,0,105,110,116,0,117
DB 110,115,105,103,110,101,100,0,99,104
DB 97,114,0,105,110,116,0,123,0,105
DB 102,0,119,104,105,108,101,0,100,111
DB 0,102,111,114,0,115,119,105,116,99
DB 104,0,99,97,115,101,0,100,101,102
DB 97,117,108,116,0,103,111,116,111,0
DB 114,101,116,117,114,110,0,98,114,101
DB 97,107,0,99,111,110,116,105,110,117
DB 101,0,59,0,35,97,115,109,0
DATA ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CODE, SS:DATA, DS:DATA
PUBLIC _declloc
_declloc:
PUSH BP
MOV BP,SP
ADD SP,-4
MOV AX,_swactive
OR AX,AX
JNE $+5
JMP _199
MOV AX,OFFSET _198+0
PUSH AX
MOV CL,1
CALL _error
ADD SP,2
_199:
MOV AX,_noloc
OR AX,AX
JNE $+5
JMP _200
MOV AX,OFFSET _198+22
PUSH AX
MOV CL,1
CALL _error
ADD SP,2
_200:
MOV AX,_declared
OR AX,AX
JL $+5
JMP _201
MOV AX,OFFSET _198+44
PUSH AX
MOV CL,1
CALL _error
ADD SP,2
_201:
_202:
XOR CL,CL
CALL _endst
OR AX,AX
JNE $+5
JMP _204
MOV SP,BP
POP BP
RET
_204:
PUSH 4[BP]
MOV AX,2
PUSH AX
LEA AX,-2[BP]
PUSH AX
LEA AX,-4[BP]
PUSH AX
MOV CL,4
CALL _decl
ADD SP,8
MOV AX,-4[BP]
MOV BX,_declared
ADD AX,BX
MOV _declared,AX
MOV AX,OFFSET _ssname
PUSH AX
PUSH -2[BP]
PUSH 4[BP]
PUSH -4[BP]
MOV BX,_declared
MOV AX,_csp
SUB AX,BX
PUSH AX
MOV AX,OFFSET _locptr
PUSH AX
MOV AX,1
PUSH AX
MOV CL,7
CALL _addsym
ADD SP,14
MOV AX,OFFSET _198+72
PUSH AX
MOV CL,1
CALL _match
ADD SP,2
OR AX,AX
JE $+5
JMP _205
MOV SP,BP
POP BP
RET
_205:
JMP _202
_203:
MOV SP,BP
POP BP
RET
CODE ENDS
DATA SEGMENT PUBLIC
_198 DB 110,111,116,32,97,108,108,111,119,101
DB 100,32,105,110,32,115,119,105,116,99
DB 104,0,110,111,116,32,97,108,108,111
DB 119,101,100,32,119,105,116,104,32,103
DB 111,116,111,0,109,117,115,116,32,100
DB 101,99,108,97,114,101,32,102,105,114
DB 115,116,32,105,110,32,98,108,111,99
DB 107,0,44,0
DATA ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CODE, SS:DATA, DS:DATA
PUBLIC _compound
_compound:
PUSH BP
MOV BP,SP
ADD SP,-4
MOV AX,_csp
LEA BX,-2[BP]
MOV [BX],AX
MOV AX,_locptr
LEA BX,-4[BP]
MOV [BX],AX
MOV _declared,0
MOV AX,_ncmp
INC AX
MOV _ncmp,AX
_207:
MOV AX,OFFSET _206+0
PUSH AX
MOV CL,1
CALL _match
ADD SP,2
OR AX,AX
JE $+5
JMP _208
MOV AX,_eof
OR AX,AX
JNE $+5
JMP _209
MOV AX,OFFSET _206+2
PUSH AX
MOV CL,1
CALL _error
ADD SP,2
JMP _208
JMP _210
_209:
XOR CL,CL
CALL _statemen
_210:
JMP _207
_208:
MOV AX,_ncmp
DEC AX
MOV _ncmp,AX
OR AX,AX
JNE $+5
JMP _212
MOV BX,_lastst
MOV AX,3
CALL __ne
OR AX,AX
JNE $+5
JMP _212
MOV BX,_lastst
MOV AX,13
CALL __ne
OR AX,AX
JNE $+5
JMP _212
MOV AX,1
JMP _213
_212:
XOR AX,AX
_213:
OR AX,AX
JNE $+5
JMP _211
MOV AX,2
PUSH AX
PUSH -2[BP]
MOV CL,2
CALL _gen
ADD SP,4
_211:
MOV AX,-4[BP]
MOV _cptr,AX
_214:
MOV AX,_locptr
MOV BX,_cptr
CALL __ult
OR AX,AX
JNE $+5
JMP _215
PUSH _cptr
MOV CL,1
CALL _nextsym
ADD SP,2
MOV _cptr2,AX
MOV BX,_cptr
MOV AL,[BX]
CBW
OR AX,AX
JE $+5
JMP _216
_217:
MOV AX,_cptr2
MOV BX,_cptr
CALL __ult
OR AX,AX
JNE $+5
JMP _218
LEA BX,-4[BP]
MOV AX,[BX]
INC WORD PTR [BX]
PUSH AX
MOV AX,_cptr
ADD _cptr,1
MOV BX,AX
MOV AL,[BX]
CBW
POP BX
MOV [BX],AL
JMP _217
_218:
JMP _219
_216:
MOV AX,_cptr2
MOV _cptr,AX
_219:
JMP _214
_215:
MOV AX,-4[BP]
MOV _locptr,AX
MOV _declared,-1
MOV SP,BP
POP BP
RET
CODE ENDS
DATA SEGMENT PUBLIC
_206 DB 125,0,110,111,32,102,105,110,97,108
DB 32,125,0
DATA ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CODE, SS:DATA, DS:DATA
PUBLIC _doif
_doif:
PUSH BP
MOV BP,SP
ADD SP,-4
XOR CL,CL
CALL _getlabel
LEA BX,-2[BP]
MOV [BX],AX
PUSH AX
MOV AX,OFFSET _YES
PUSH AX
MOV CL,2
CALL _test
ADD SP,4
XOR CL,CL
CALL _statemen
MOV AX,OFFSET _220+0
PUSH AX
MOV AX,4
PUSH AX
MOV CL,2
CALL _amatch
ADD SP,4
OR AX,AX
JE $+5
JMP _221
MOV AX,41
PUSH AX
PUSH -2[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV SP,BP
POP BP
RET
_221:
XOR CL,CL
CALL _getlabel
LEA BX,-4[BP]
MOV [BX],AX
MOV BX,_lastst
MOV AX,3
CALL __ne
OR AX,AX
JNE $+5
JMP _223
MOV BX,_lastst
MOV AX,13
CALL __ne
OR AX,AX
JNE $+5
JMP _223
MOV AX,1
JMP _224
_223:
XOR AX,AX
_224:
OR AX,AX
JNE $+5
JMP _222
MOV AX,40
PUSH AX
PUSH -4[BP]
MOV CL,2
CALL _gen
ADD SP,4
_222:
MOV AX,41
PUSH AX
PUSH -2[BP]
MOV CL,2
CALL _gen
ADD SP,4
XOR CL,CL
CALL _statemen
MOV AX,41
PUSH AX
PUSH -4[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV SP,BP
POP BP
RET
CODE ENDS
DATA SEGMENT PUBLIC
_220 DB 101,108,115,101,0
DATA ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CODE, SS:DATA, DS:DATA
PUBLIC _dowhile
_dowhile:
PUSH BP
MOV BP,SP
ADD SP,-8
LEA AX,-8[BP]
PUSH AX
MOV CL,1
CALL _addwhile
ADD SP,2
MOV AX,41
PUSH AX
PUSH -6[BP]
MOV CL,2
CALL _gen
ADD SP,4
PUSH -4[BP]
MOV AX,OFFSET _YES
PUSH AX
MOV CL,2
CALL _test
ADD SP,4
XOR CL,CL
CALL _statemen
MOV AX,40
PUSH AX
PUSH -6[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,41
PUSH AX
PUSH -4[BP]
MOV CL,2
CALL _gen
ADD SP,4
XOR CL,CL
CALL _delwhile
MOV SP,BP
POP BP
RET
PUBLIC _dodo
_dodo:
PUSH BP
MOV BP,SP
ADD SP,-8
LEA AX,-8[BP]
PUSH AX
MOV CL,1
CALL _addwhile
ADD SP,2
MOV AX,41
PUSH AX
PUSH -6[BP]
MOV CL,2
CALL _gen
ADD SP,4
XOR CL,CL
CALL _statemen
MOV AX,OFFSET _226+0
PUSH AX
MOV CL,1
CALL _need
ADD SP,2
PUSH -4[BP]
MOV AX,OFFSET _YES
PUSH AX
MOV CL,2
CALL _test
ADD SP,4
MOV AX,40
PUSH AX
PUSH -6[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,41
PUSH AX
PUSH -4[BP]
MOV CL,2
CALL _gen
ADD SP,4
XOR CL,CL
CALL _delwhile
XOR CL,CL
CALL _ns
MOV SP,BP
POP BP
RET
CODE ENDS
DATA SEGMENT PUBLIC
_226 DB 119,104,105,108,101,0
DATA ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CODE, SS:DATA, DS:DATA
PUBLIC _dofor
_dofor:
PUSH BP
MOV BP,SP
ADD SP,-12
LEA AX,-8[BP]
PUSH AX
MOV CL,1
CALL _addwhile
ADD SP,2
XOR CL,CL
CALL _getlabel
LEA BX,-10[BP]
MOV [BX],AX
XOR CL,CL
CALL _getlabel
LEA BX,-12[BP]
MOV [BX],AX
MOV AX,OFFSET _227+0
PUSH AX
MOV CL,1
CALL _need
ADD SP,2
MOV AX,OFFSET _227+2
PUSH AX
MOV CL,1
CALL _match
ADD SP,2
OR AX,AX
JE $+5
JMP _228
MOV AX,OFFSET _NO
PUSH AX
MOV CL,1
CALL _doexpr
ADD SP,2
XOR CL,CL
CALL _ns
_228:
MOV AX,41
PUSH AX
PUSH -10[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,OFFSET _227+4
PUSH AX
MOV CL,1
CALL _match
ADD SP,2
OR AX,AX
JE $+5
JMP _229
PUSH -4[BP]
MOV AX,OFFSET _NO
PUSH AX
MOV CL,2
CALL _test
ADD SP,4
XOR CL,CL
CALL _ns
_229:
MOV AX,40
PUSH AX
PUSH -12[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,41
PUSH AX
PUSH -6[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,OFFSET _227+6
PUSH AX
MOV CL,1
CALL _match
ADD SP,2
OR AX,AX
JE $+5
JMP _230
MOV AX,OFFSET _NO
PUSH AX
MOV CL,1
CALL _doexpr
ADD SP,2
MOV AX,OFFSET _227+8
PUSH AX
MOV CL,1
CALL _need
ADD SP,2
_230:
MOV AX,40
PUSH AX
PUSH -10[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,41
PUSH AX
PUSH -12[BP]
MOV CL,2
CALL _gen
ADD SP,4
XOR CL,CL
CALL _statemen
MOV AX,40
PUSH AX
PUSH -6[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,41
PUSH AX
PUSH -4[BP]
MOV CL,2
CALL _gen
ADD SP,4
XOR CL,CL
CALL _delwhile
MOV SP,BP
POP BP
RET
CODE ENDS
DATA SEGMENT PUBLIC
_227 DB 40,0,59,0,59,0,41,0,41,0
DATA ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CODE, SS:DATA, DS:DATA
PUBLIC _doswitch
_doswitch:
PUSH BP
MOV BP,SP
ADD SP,-18
MOV AX,_swactive
LEA BX,-12[BP]
MOV [BX],AX
MOV AX,_swdefaul
LEA BX,-14[BP]
MOV [BX],AX
MOV AX,_swnext
LEA BX,-18[BP]
MOV [BX],AX
LEA BX,-16[BP]
MOV [BX],AX
LEA AX,-8[BP]
PUSH AX
MOV CL,1
CALL _addwhile
ADD SP,2
MOV AX,_wqptr
INC AX
INC AX
SUB AX,6
MOV BX,AX
XOR AX,AX
MOV [BX],AX
MOV AX,OFFSET _231+0
PUSH AX
MOV CL,1
CALL _need
ADD SP,2
MOV AX,OFFSET _YES
PUSH AX
MOV CL,1
CALL _doexpr
ADD SP,2
MOV AX,OFFSET _231+2
PUSH AX
MOV CL,1
CALL _need
ADD SP,2
MOV _swdefaul,0
MOV _swactive,1
MOV AX,40
PUSH AX
XOR CL,CL
CALL _getlabel
LEA BX,-10[BP]
MOV [BX],AX
PUSH AX
MOV CL,2
CALL _gen
ADD SP,4
XOR CL,CL
CALL _statemen
MOV AX,40
PUSH AX
PUSH -4[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,41
PUSH AX
PUSH -10[BP]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,72
PUSH AX
XOR AX,AX
PUSH AX
MOV CL,2
CALL _gen
ADD SP,4
_232:
MOV AX,_swnext
MOV BX,-18[BP]
CALL __ult
OR AX,AX
JNE $+5
JMP _233
MOV AX,56
PUSH AX
LEA BX,-18[BP]
MOV AX,[BX]
ADD WORD PTR [BX],2
MOV BX,AX
PUSH [BX]
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,38
PUSH AX
LEA BX,-18[BP]
MOV AX,[BX]
ADD WORD PTR [BX],2
MOV BX,AX
PUSH [BX]
MOV CL,2
CALL _gen
ADD SP,4
JMP _232
_233:
MOV AX,38
PUSH AX
XOR AX,AX
PUSH AX
MOV CL,2
CALL _gen
ADD SP,4
MOV AX,_swdefaul
OR AX,AX
JNE $+5
JMP _234
MOV AX,40
PUSH AX
PUSH _swdefaul
MOV CL,2
CALL _gen
ADD SP,4
_234:
MOV AX,41
PUSH AX
PUSH -4[BP]
MOV CL,2
CALL _gen
ADD SP,4
XOR CL,CL
CALL _delwhile
MOV AX,-16[BP]
MOV _swnext,AX
MOV AX,-14[BP]
MOV _swdefaul,AX
MOV AX,-12[BP]
MOV _swactive,AX
MOV SP,BP
POP BP
RET
CODE ENDS
DATA SEGMENT PUBLIC
_231 DB 40,0,41,0
DATA ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CODE, SS:DATA, DS:DATA
PUBLIC _docase
_docase:
PUSH BP
MOV BP,SP
MOV AX,_swactive
OR AX,AX
JE $+5
JMP _236
MOV AX,OFFSET _235+0
PUSH AX
MOV CL,1
CALL _error
ADD SP,2
_236:
MOV AX,_swend
MOV BX,_swnext
CALL __ugt
OR AX,AX
JNE $+5
JMP _237
MOV AX,OFFSET _235+14
PUSH AX
MOV CL,1
CALL _error
ADD SP,2
POP BP
RET
_237:
MOV AX,41
PUSH AX
MOV AX,_swnext
ADD _swnext,2
PUSH AX
XOR CL,CL
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -