📄 fscanf.mac
字号:
INCLUDE PROLOG.H
_CC1:
PUBLIC _fscanf
_fscanf:
SUB SP,2
MOV BX,0
ADD BX,SP
PUSH BX ;
CALL _CCARGC
XCHG DX,BX
MOV BX,6
ADD BX,SP
XCHG BX,DX
ADD BX,BX
ADD BX,DX
POP DX
MOV SI,DX
MOV [SI],BX
MOV BX,0
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
DEC BX
DEC BX
MOV SI,DX
MOV [SI],BX
MOV BX,[BX]
PUSH BX ;
MOV BX,2
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
DEC BX
DEC BX
MOV SI,DX
MOV [SI],BX
PUSH BX ;
CALL _Uscan
ADD SP,4
ADD SP,2
RET
PUBLIC _scanf
_scanf:
MOV BX,0
PUSH BX ;
CALL _CCARGC
XCHG DX,BX
MOV BX,4
ADD BX,SP
XCHG BX,DX
ADD BX,BX
ADD BX,DX
XCHG DX,BX
MOV BX,2
SUB DX,BX
MOV BX,DX
PUSH BX ;
CALL _Uscan
ADD SP,4
RET
PUBLIC _Uscan
_Uscan:
SUB SP,24
MOV BX,12
ADD BX,SP
XCHG DX,BX
MOV BX,0
MOV SI,DX
MOV [SI],BX
MOV BX,20
ADD BX,SP
PUSH BX ;
MOV BX,28
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
DEC BX
DEC BX
MOV SI,DX
MOV [SI],BX
INC BX
INC BX
MOV BX,[BX]
POP DX
MOV SI,DX
MOV [SI],BX
_CC5:
MOV BX,20
ADD BX,SP
MOV BX,[BX]
MOV AL,[BX]
CBW
MOV BX,AX
OR BX,BX
JNZ $+5
JMP _CC6
MOV BX,20
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 _CC7
MOV BX,20
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
INC BX
MOV SI,DX
MOV [SI],BX
JMP _CC5
_CC7:
MOV BX,20
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
XCHG DX,BX
MOV BX,37
CMP DX,BX
MOV BX,CX
JE $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC8
JMP _CC5
_CC8:
MOV BX,20
ADD BX,SP
MOV BX,[BX]
MOV AL,[BX]
CBW
MOV BX,AX
XCHG DX,BX
MOV BX,42
CMP DX,BX
MOV BX,CX
JNZ $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC9
MOV BX,16
ADD BX,SP
PUSH BX ;
MOV BX,24
ADD BX,SP
XCHG DX,BX
MOV BX,16
ADD BX,SP
MOV SI,DX
MOV [SI],BX
POP DX
MOV SI,DX
MOV [SI],BX
MOV BX,20
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
INC BX
MOV SI,DX
MOV [SI],BX
JMP _CC10
_CC9:
MOV BX,16
ADD BX,SP
PUSH BX ;
MOV BX,24
ADD BX,SP
PUSH BX ;
MOV BX,30
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
DEC BX
DEC BX
MOV SI,DX
MOV [SI],BX
INC BX
INC BX
MOV BX,[BX]
POP DX
MOV SI,DX
MOV [SI],BX
POP DX
MOV SI,DX
MOV [SI],BX
_CC10:
MOV BX,20
ADD BX,SP
PUSH BX ;
MOV BX,[BX]
PUSH BX ;
MOV BX,24
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
MOV BX,16
ADD BX,SP
PUSH BX ;
CALL _utoi
ADD SP,4
POP DX
ADD BX,DX
POP DX
MOV SI,DX
MOV [SI],BX
MOV BX,10
ADD BX,SP
MOV BX,[BX]
OR BX,BX
MOV BX,CX
JNZ $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC11
MOV BX,10
ADD BX,SP
XCHG DX,BX
MOV BX,32767
MOV SI,DX
MOV [SI],BX
_CC11:
MOV BX,6
ADD BX,SP
PUSH BX ;
MOV BX,22
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
MOV SI,DX
MOV [SI],BX
OR BX,BX
MOV BX,CX
JNZ $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC12
JMP _CC6
_CC12:
_CC13:
MOV BX,8
ADD BX,SP
PUSH BX ;
MOV BX,30
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
CALL _fgetc
ADD SP,2
POP DX
MOV SI,DX
MOV [SI],BX
PUSH BX ;
CALL _isspace
ADD SP,2
OR BX,BX
JNZ $+5
JMP _CC14
JMP _CC13
_CC14:
MOV BX,8
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,-1
CMP DX,BX
MOV BX,CX
JNZ $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC15
MOV BX,12
ADD BX,SP
MOV BX,[BX]
OR BX,BX
JNZ $+5
JMP _CC16
JMP _CC6
JMP _CC17
_CC16:
MOV BX,-1
ADD SP,24
RET
_CC17:
_CC15:
MOV BX,8
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
MOV BX,30
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
CALL _ungetc
ADD SP,4
MOV BX,6
ADD BX,SP
MOV BX,[BX]
JMP _CC20
_CC21:
MOV BX,22
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
MOV BX,30
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
CALL _fgetc
ADD SP,2
POP DX
MOV SI,DX
MOV [SI],BL
JMP _CC19
_CC22:
_CC23:
MOV BX,10
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
DEC BX
MOV SI,DX
MOV [SI],BX
INC BX
OR BX,BX
JNZ $+5
JMP _CC24
MOV BX,22
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
MOV BX,30
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
CALL _fgetc
ADD SP,2
POP DX
MOV SI,DX
MOV [SI],BL
XCHG DX,BX
MOV BX,-1
CMP DX,BX
MOV BX,CX
JNZ $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC25
JMP _CC24
_CC25:
MOV BX,22
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 _CC26
JMP _CC24
_CC26:
MOV BX,22
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,14
ADD BX,SP
CMP DX,BX
MOV BX,CX
JE $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC27
MOV BX,22
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
INC BX
MOV SI,DX
MOV [SI],BX
_CC27:
JMP _CC23
_CC24:
MOV BX,22
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,0
MOV SI,DX
MOV [SI],BL
JMP _CC19
_CC28:
MOV BX,6
ADD BX,SP
MOV BX,[BX]
JMP _CC31
_CC32:
MOV BX,4
ADD BX,SP
XCHG DX,BX
MOV BX,2
MOV SI,DX
MOV [SI],BX
MOV BX,0
ADD BX,SP
XCHG DX,BX
MOV BX,1
MOV SI,DX
MOV [SI],BX
MOV BX,2
ADD BX,SP
XCHG DX,BX
MOV BX,32767
MOV SI,DX
MOV [SI],BX
JMP _CC30
_CC33:
MOV BX,4
ADD BX,SP
XCHG DX,BX
MOV BX,10
MOV SI,DX
MOV [SI],BX
MOV BX,0
ADD BX,SP
XCHG DX,BX
MOV BX,0
MOV SI,DX
MOV [SI],BX
MOV BX,2
ADD BX,SP
XCHG DX,BX
MOV BX,3276
MOV SI,DX
MOV [SI],BX
JMP _CC30
_CC34:
MOV BX,4
ADD BX,SP
XCHG DX,BX
MOV BX,8
MOV SI,DX
MOV [SI],BX
MOV BX,0
ADD BX,SP
XCHG DX,BX
MOV BX,1
MOV SI,DX
MOV [SI],BX
MOV BX,2
ADD BX,SP
XCHG DX,BX
MOV BX,8191
MOV SI,DX
MOV [SI],BX
JMP _CC30
_CC35:
MOV BX,4
ADD BX,SP
XCHG DX,BX
MOV BX,10
MOV SI,DX
MOV [SI],BX
MOV BX,0
ADD BX,SP
XCHG DX,BX
MOV BX,1
MOV SI,DX
MOV [SI],BX
MOV BX,2
ADD BX,SP
XCHG DX,BX
MOV BX,6553
MOV SI,DX
MOV [SI],BX
JMP _CC30
_CC36:
MOV BX,4
ADD BX,SP
XCHG DX,BX
MOV BX,16
MOV SI,DX
MOV [SI],BX
MOV BX,0
ADD BX,SP
XCHG DX,BX
MOV BX,1
MOV SI,DX
MOV [SI],BX
MOV BX,2
ADD BX,SP
XCHG DX,BX
MOV BX,4095
MOV SI,DX
MOV [SI],BX
JMP _CC30
_CC37:
MOV BX,12
ADD BX,SP
MOV BX,[BX]
ADD SP,24
RET
JMP _CC30
_CC31:
CALL _CCSWITCH
DW _CC32,98
DW _CC33,100
DW _CC34,111
DW _CC35,117
DW _CC36,120
DW 0
JMP _CC37
_CC30:
MOV BX,16
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
MOV BX,20
ADD BX,SP
XCHG DX,BX
MOV BX,0
MOV SI,DX
MOV [SI],BX
POP DX
MOV SI,DX
MOV [SI],BX
_CC38:
MOV BX,10
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
DEC BX
MOV SI,DX
MOV [SI],BX
INC BX
OR BX,BX
JNZ $+5
JMP _CC40
MOV BX,8
ADD BX,SP
PUSH BX ;
MOV BX,30
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
CALL _fgetc
ADD SP,2
POP DX
MOV SI,DX
MOV [SI],BX
PUSH BX ;
CALL _isspace
ADD SP,2
OR BX,BX
MOV BX,CX
JNZ $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC40
MOV BX,8
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,-1
CMP DX,BX
MOV BX,CX
JE $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC40
MOV BX,1
JMP _CC41
_CC40:
MOV BX,0
_CC41:
OR BX,BX
JNZ $+5
JMP _CC39
MOV BX,0
ADD BX,SP
MOV BX,[BX]
OR BX,BX
MOV BX,CX
JNZ $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC42
MOV BX,8
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,45
CMP DX,BX
MOV BX,CX
JNZ $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC43
MOV BX,0
ADD BX,SP
XCHG DX,BX
MOV BX,-1
MOV SI,DX
MOV [SI],BX
JMP _CC38
JMP _CC44
_CC43:
MOV BX,0
ADD BX,SP
XCHG DX,BX
MOV BX,1
MOV SI,DX
MOV [SI],BX
_CC44:
_CC42:
MOV BX,8
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,48
CMP DX,BX
MOV BX,CX
JGE $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC45
MOV BX,12
ADD BX,SP
MOV BX,[BX]
ADD SP,24
RET
_CC45:
MOV BX,8
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,97
CMP DX,BX
MOV BX,CX
JL $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC46
MOV BX,8
ADD BX,SP
PUSH BX ;
MOV BX,[BX]
XCHG DX,BX
MOV BX,87
SUB DX,BX
MOV BX,DX
POP DX
MOV SI,DX
MOV [SI],BX
JMP _CC47
_CC46:
MOV BX,8
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,65
CMP DX,BX
MOV BX,CX
JL $+3
INC BX
OR BX,BX
JNZ $+5
JMP _CC48
MOV BX,8
ADD BX,SP
PUSH BX ;
MOV BX,[BX]
XCHG DX,BX
MOV BX,55
SUB DX,BX
MOV BX,DX
POP DX
MOV SI,DX
MOV [SI],BX
JMP _CC49
_CC48:
MOV BX,8
ADD BX,SP
PUSH BX ;
MOV BX,[BX]
XCHG DX,BX
MOV BX,48
SUB DX,BX
MOV BX,DX
POP DX
MOV SI,DX
MOV [SI],BX
_CC49:
_CC47:
MOV BX,8
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,4
ADD BX,SP
MOV BX,[BX]
CMP DX,BX
MOV BX,CX
JL $+3
INC BX
OR BX,BX
JZ $+5
JMP _CC51
MOV BX,18
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,2
ADD BX,SP
MOV BX,[BX]
CMP DX,BX
MOV BX,CX
JBE $+3
INC BX
OR BX,BX
JZ $+5
JMP _CC51
MOV BX,0
JMP _CC52
_CC51:
MOV BX,1
_CC52:
OR BX,BX
JNZ $+5
JMP _CC50
MOV BX,12
ADD BX,SP
MOV BX,[BX]
ADD SP,24
RET
_CC50:
MOV BX,18
ADD BX,SP
PUSH BX ;
MOV BX,20
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,6
ADD BX,SP
MOV BX,[BX]
MOV AX,DX
IMUL BX
MOV BX,AX
XCHG DX,BX
MOV BX,10
ADD BX,SP
MOV BX,[BX]
ADD BX,DX
POP DX
MOV SI,DX
MOV [SI],BX
JMP _CC38
_CC39:
MOV BX,16
ADD BX,SP
MOV BX,[BX]
PUSH BX ;
MOV BX,2
ADD BX,SP
MOV BX,[BX]
XCHG DX,BX
MOV BX,20
ADD BX,SP
MOV BX,[BX]
MOV AX,DX
IMUL BX
MOV BX,AX
POP DX
MOV SI,DX
MOV [SI],BX
JMP _CC19
_CC20:
CALL _CCSWITCH
DW _CC21,99
DW _CC22,115
DW 0
JMP _CC28
_CC19:
MOV BX,12
ADD BX,SP
MOV DX,BX
MOV BX,[BX]
INC BX
MOV SI,DX
MOV [SI],BX
JMP _CC5
_CC6:
MOV BX,12
ADD BX,SP
MOV BX,[BX]
ADD SP,24
RET
EXTRN _fgetc:NEAR
EXTRN _isspace:NEAR
EXTRN _CCARGC:NEAR
EXTRN _ungetc:NEAR
EXTRN _utoi:NEAR
EXTRN _CCSWITCH:NEAR
INCLUDE EPILOG.H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -