📄 atoi.mac
字号:
INCLUDE PROLOG.H
_CC1:
PUBLIC _atoi
_atoi:
SUB SP,4
_CC3:
MOV BX,6
ADD BX,SP
MOV BX,[BX]
MOV AL,[BX]
CBW
MOV BX,AX
PUSH BX ;
CALL _isspace
ADD SP,2
OR BX,BX
JNZ $+5
JMP _CC4
MOV BX,6
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
INC BX
MOV SI,DX
MOV [SI],BX
JMP _CC3
_CC4:
MOV BX,2
ADD BX,SP
XCHG DX,BX
MOV BX,1
MOV SI,DX
MOV [SI],BX
MOV BX,6
ADD BX,SP
MOV BX,[BX]
MOV AL,[BX]
CBW
MOV BX,AX
JMP _CC7
_CC8:
MOV BX,2
ADD BX,SP
XCHG DX,BX
MOV BX,-1
MOV SI,DX
MOV [SI],BX
_CC9:
MOV BX,6
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
INC BX
MOV SI,DX
MOV [SI],BX
JMP _CC6
_CC7:
CALL _CCSWITCH
DW _CC8,45
DW _CC9,43
DW 0
_CC6:
MOV BX,0
ADD BX,SP
XCHG DX,BX
MOV BX,0
MOV SI,DX
MOV [SI],BX
_CC10:
MOV BX,6
ADD BX,SP
MOV BX,[BX]
MOV AL,[BX]
CBW
MOV BX,AX
PUSH BX ;
CALL _isdigit
ADD SP,2
OR BX,BX
JNZ $+5
JMP _CC11
MOV BX,0
ADD BX,SP
PUSH BX ;
MOV BX,2
ADD BX,SP
MOV BX,[BX]
MOV DX,10
MOV AX,DX
IMUL BX
MOV BX,AX
PUSH BX ;
MOV BX,10
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
INC BX
MOV SI,DX
MOV [SI],BX
DEC BX
MOV AL,[BX]
CBW
MOV BX,AX
POP DX
ADD BX,DX
XCHG DX,BX
MOV BX,48
SUB DX,BX
MOV BX,DX
POP DX
MOV SI,DX
MOV [SI],BX
JMP _CC10
_CC11:
MOV BX,2
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,0
ADD BX,SP
MOV BX,[BX]
MOV AX,DX
IMUL BX
MOV BX,AX
ADD SP,4
RET
EXTRN _isdigit:NEAR
EXTRN _isspace:NEAR
EXTRN _CCSWITCH:NEAR
INCLUDE EPILOG.H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -