itox.mac

来自「--- --- ---基于C语言的编译器的 简单实现」· MAC 代码 · 共 206 行

MAC
206
字号
 INCLUDE PROLOG.H
_CC1:
 PUBLIC _itox
_itox:
 SUB SP,4
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 JG $+5
 JMP _CC3
 MOV BX,8
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,8
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 DEC BX
 MOV SI,DX
 MOV [SI],BX
 POP DX
 ADD BX,DX
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BL
 JMP _CC4
_CC3:
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 JS $+5
 JMP _CC5
 MOV BX,6
 ADD BX,SP
 XCHG DX,BX
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 NEG BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC6
_CC5:
_CC7:
 MOV BX,8
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,DX
 MOV AL,[BX]
 CBW
 MOV BX,AX
 OR BX,BX
 JNZ $+5
 JMP _CC8
 MOV BX,6
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC7
_CC8:
_CC6:
_CC4:
_CC9:
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 JNZ $+5
 JMP _CC10
 MOV BX,2
 ADD BX,SP
 PUSH BX  ;
 MOV BX,12
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,15
 AND BX,DX
 POP DX
 MOV SI,DX
 MOV [SI],BX
 MOV BX,10
 ADD BX,SP
 PUSH BX  ;
 MOV BX,12
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,4
 MOV CL,BL
 SAR DX,CL
 MOV BX,DX
 XOR CX,CX
 XCHG DX,BX
 MOV BX,4095
 AND BX,DX
 POP DX
 MOV SI,DX
 MOV [SI],BX
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,10
 CMP DX,BX
 MOV BX,CX
 JGE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC11
 MOV BX,0
 ADD BX,SP
 XCHG DX,BX
 MOV BX,48
 MOV SI,DX
 MOV [SI],BX
 JMP _CC12
_CC11:
 MOV BX,0
 ADD BX,SP
 XCHG DX,BX
 MOV BX,55
 MOV SI,DX
 MOV [SI],BX
_CC12:
 MOV BX,8
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,8
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 DEC BX
 MOV SI,DX
 MOV [SI],BX
 POP DX
 ADD BX,DX
 PUSH BX  ;
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,DX
 POP DX
 MOV SI,DX
 MOV [SI],BL
 MOV BX,10
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 JZ $+5
 JMP _CC13
 JMP _CC10
_CC13:
 JMP _CC9
_CC10:
_CC14:
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 JNZ $+5
 JMP _CC15
 MOV BX,8
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,8
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 DEC BX
 MOV SI,DX
 MOV [SI],BX
 POP DX
 ADD BX,DX
 XCHG DX,BX
 MOV BX,32
 MOV SI,DX
 MOV [SI],BL
 JMP _CC14
_CC15:
 MOV BX,8
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,4
 RET
 INCLUDE EPILOG.H
 END

⌨️ 快捷键说明

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