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 + -
显示快捷键?