fgetc.mac

来自「--- --- ---基于C语言的编译器的 简单实现」· MAC 代码 · 共 89 行

MAC
89
字号
 INCLUDE PROLOG.H
_CC1:
 PUBLIC _fgetc
_fgetc:
 SUB SP,3
 MOV BX,0
 ADD BX,SP
 PUSH BX  ;
 MOV BX,7
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,1
 PUSH BX  ;
 CALL _Uread
 ADD SP,6
 XCHG DX,BX
 MOV BX,-1
 CMP DX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC3
 MOV BX,5
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Useteof
 ADD SP,2
 MOV BX,-1
 ADD SP,3
 RET
_CC3:
 MOV BX,1
 ADD BX,SP
 XCHG DX,BX
 MOV BX,0
 ADD BX,SP
 MOV AL,[BX]
 CBW
 MOV BX,AX
 MOV SI,DX
 MOV [SI],BX
 MOV BX,1
 ADD BX,SP
 MOV BX,[BX]
 JMP _CC6
_CC7:
 MOV BX,1
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,3
 RET
_CC8:
 MOV BX,5
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Useteof
 ADD SP,2
 MOV BX,-1
 ADD SP,3
 RET
_CC9:
 MOV BX,10
 ADD SP,3
 RET
_CC10:
 JMP _CC5
_CC6:
 CALL _CCSWITCH
 DW _CC8,26
 DW _CC9,13
 DW _CC10,10
 DW 0
 JMP _CC7
_CC5:
 ADD SP,3
 RET
_getc EQU   _fgetc
     PUBLIC _getc
 EXTRN _Useteof:NEAR
 EXTRN _Uread:NEAR
 EXTRN _CCSWITCH:NEAR
 INCLUDE EPILOG.H
 END

⌨️ 快捷键说明

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