⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fscanf.mac

📁 一个c语言编译器源代码.small-c-for-dos源代码.里面包含基本的库函数
💻 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 + -