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 + -
显示快捷键?