itou.mac
来自「--- --- ---基于C语言的编译器的 简单实现」· MAC 代码 · 共 206 行
MAC
206 行
INCLUDE PROLOG.H
_CC1:
PUBLIC _itou
_itou:
SUB SP,2
MOV BX,4
ADD BX,SP
MOV BX,[BX]
OR BX,BX
JG $+5
JMP _CC3
MOV BX,6
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
MOV BX,6
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,4
ADD BX,SP
MOV BX,[BX]
OR BX,BX
JS $+5
JMP _CC5
MOV BX,4
ADD BX,SP
XCHG DX,BX
MOV BX,4
ADD BX,SP
MOV BX,[BX]
NEG BX
MOV SI,DX
MOV [SI],BX
JMP _CC6
_CC5:
_CC7:
MOV BX,6
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,4
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,4
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,4
ADD BX,SP
MOV BX,[BX]
OR BX,BX
JNZ $+5
JMP _CC10
MOV BX,0
ADD BX,SP
PUSH BX ;
MOV BX,10
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,1
AND BX,DX
POP DX
MOV SI,DX
MOV [SI],BX
MOV BX,8
ADD BX,SP
PUSH BX ;
MOV BX,10
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,1
MOV CL,BL
SAR DX,CL
MOV BX,DX
XOR CX,CX
XCHG DX,BX
MOV BX,32767
AND BX,DX
POP DX
MOV SI,DX
MOV [SI],BX
MOV BX,6
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
MOV BX,6
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,10
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,5
MOV AX,DX
SUB DX,DX
IDIV BX
MOV BX,AX
XCHG BX,DX
XCHG DX,BX
MOV BX,1
MOV CL,BL
SAL DX,CL
MOV BX,DX
XOR CX,CX
XCHG DX,BX
MOV BX,2
ADD BX,SP
MOV BX,[BX]
ADD BX,DX
MOV DX,48
ADD BX,DX
POP DX
MOV SI,DX
MOV [SI],BL
MOV BX,8
ADD BX,SP
PUSH BX ;
MOV BX,10
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,5
MOV AX,DX
SUB DX,DX
IDIV BX
MOV BX,AX
POP DX
MOV SI,DX
MOV [SI],BX
OR BX,BX
JZ $+5
JMP _CC11
JMP _CC10
_CC11:
JMP _CC9
_CC10:
_CC12:
MOV BX,4
ADD BX,SP
MOV BX,[BX]
OR BX,BX
JNZ $+5
JMP _CC13
MOV BX,6
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
MOV BX,6
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 _CC12
_CC13:
MOV BX,6
ADD BX,SP
MOV BX,[BX]
ADD SP,2
RET
INCLUDE EPILOG.H
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?