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

📄 fgets.mac

📁 一个c语言编译器源代码.small-c-for-dos源代码.里面包含基本的库函数
💻 MAC
字号:
 INCLUDE PROLOG.H
_CC1:
 PUBLIC _fgets
_fgets:
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,1
 PUSH BX  ;
 CALL _Ugets
 ADD SP,8
 RET
 PUBLIC _gets
_gets:
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,32767
 PUSH BX  ;
 MOV BX,0
 PUSH BX  ;
 MOV BX,0
 PUSH BX  ;
 CALL _Ugets
 ADD SP,8
 RET
 PUBLIC _Ugets
_Ugets:
 SUB SP,4
 MOV BX,0
 ADD BX,SP
 XCHG DX,BX
 MOV BX,12
 ADD BX,SP
 MOV BX,[BX]
 MOV SI,DX
 MOV [SI],BX
_CC5:
 MOV BX,10
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 DEC BX
 MOV SI,DX
 MOV [SI],BX
 OR BX,BX
 JG $+5
 JMP _CC6
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,10
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _fgetc
 ADD SP,2
 POP DX
 MOV SI,DX
 MOV [SI],BL
 JMP _CC9
_CC10:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BL
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,12
 ADD BX,SP
 MOV BX,[BX]
 CMP DX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC11
 MOV BX,0
 ADD SP,4
 RET
_CC11:
 MOV BX,12
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,4
 RET
_CC12:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,DX
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BL
 MOV BX,12
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,4
 RET
_CC13:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,12
 ADD BX,SP
 MOV BX,[BX]
 CMP DX,BX
 MOV BX,CX
 JBE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC14
 MOV BX,2
 ADD BX,SP
 XCHG DX,BX
 MOV BX,1
 MOV SI,DX
 MOV [SI],BX
 JMP _CC15
_CC14:
 MOV BX,2
 ADD BX,SP
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BX
_CC15:
 JMP _CC16
_CC17:
 MOV BX,2
 ADD BX,SP
 PUSH BX  ;
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,14
 ADD BX,SP
 MOV BX,[BX]
 SUB DX,BX
 MOV BX,DX
 POP DX
 MOV SI,DX
 MOV [SI],BX
_CC16:
 MOV BX,8
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _iscons
 ADD SP,2
 OR BX,BX
 JNZ $+5
 JMP _CC18
 MOV BX,OFFSET _CC4+0
 PUSH BX  ;
 MOV BX,2
 PUSH BX  ;
 CALL _fputs
 ADD SP,4
 MOV BX,10
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
_CC19:
 MOV BX,2
 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 _CC20
 MOV BX,OFFSET _CC4+7
 PUSH BX  ;
 MOV BX,2
 PUSH BX  ;
 CALL _fputs
 ADD SP,4
 MOV BX,0
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 DEC BX
 MOV SI,DX
 MOV [SI],BX
 MOV AL,[BX]
 CBW
 MOV BX,AX
 XCHG DX,BX
 MOV BX,32
 CMP DX,BX
 MOV BX,CX
 JGE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC21
 MOV BX,OFFSET _CC4+11
 PUSH BX  ;
 MOV BX,2
 PUSH BX  ;
 CALL _fputs
 ADD SP,4
_CC21:
 MOV BX,10
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC19
_CC20:
 JMP _CC5
_CC18:
_CC22:
 MOV BX,0
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC8
_CC9:
 CALL _CCSWITCH
 DW _CC10,-1
 DW _CC12,10
 DW _CC13,8
 DW _CC17,24
 DW 0
 JMP _CC22
_CC8:
 JMP _CC5
_CC6:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BL
 MOV BX,12
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,4
 RET
_CC4: DB 8,32,8,8,32,8,0,8,32,8
 DB 0,8,32,8,0
 EXTRN _iscons:NEAR
 EXTRN _fgetc:NEAR
 EXTRN _fputs:NEAR
 EXTRN _CCSWITCH:NEAR
 INCLUDE EPILOG.H
 END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -