fclose.mac

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

MAC
95
字号
 INCLUDE PROLOG.H
 EXTRN _Ustatus:WORD
 EXTRN _Udevice:WORD
 EXTRN _Ufd:WORD
_CC1:
 PUBLIC _fclose
_fclose:
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Umode
 ADD SP,2
 OR BX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC3
 MOV BX,-2
 RET
_CC3:
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _isatty
 ADD SP,2
 OR BX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC4
 MOV BX,0
 PUSH BX  ;
 MOV BX,0
 PUSH BX  ;
 MOV BX,OFFSET _Ufd
 XCHG DX,BX
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,15872
 PUSH BX  ;
 CALL _Umsdos
 ADD SP,8
 XCHG DX,BX
 MOV BX,-2
 CMP DX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC5
 MOV BX,-2
 RET
_CC5:
_CC4:
 MOV BX,OFFSET _Ustatus
 XCHG DX,BX
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 PUSH BX  ;
 MOV BX,OFFSET _Udevice
 XCHG DX,BX
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BX
 POP DX
 MOV SI,DX
 MOV [SI],BX
 RET
 EXTRN _isatty:NEAR
 EXTRN _Umsdos:NEAR
 EXTRN _Umode:NEAR
 INCLUDE EPILOG.H
 END

⌨️ 快捷键说明

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