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

📄 fprintf.mac

📁 这是一个8086和8088系列机的编译器的源码
💻 MAC
字号:
 INCLUDE PROLOG.H
_CC1:
 PUBLIC _fprintf
_fprintf:
 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 _Uprint
 ADD SP,4
 ADD SP,2
 RET
 PUBLIC _printf
_printf:
 MOV BX,1
 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 _Uprint
 ADD SP,4
 RET
 PUBLIC _Uprint
_Uprint:
 SUB SP,35
 MOV BX,27
 ADD BX,SP
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BX
 MOV BX,19
 ADD BX,SP
 PUSH BX  ;
 MOV BX,39
 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,19
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 OR BX,BX
 JNZ $+5
 JMP _CC6
 MOV BX,19
 ADD BX,SP
 MOV BX,[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 _CC7
 MOV BX,19
 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
 PUSH BX  ;
 MOV BX,41
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _fputc
 ADD SP,4
 MOV BX,27
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC5
 JMP _CC8
_CC7:
 MOV BX,19
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
_CC8:
 MOV BX,19
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 XCHG DX,BX
 MOV BX,37
 CMP DX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC9
 MOV BX,19
 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
 PUSH BX  ;
 MOV BX,41
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _fputc
 ADD SP,4
 MOV BX,27
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC5
_CC9:
 MOV BX,19
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 XCHG DX,BX
 MOV BX,45
 CMP DX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC10
 MOV BX,31
 ADD BX,SP
 XCHG DX,BX
 MOV BX,1
 MOV SI,DX
 MOV [SI],BX
 MOV BX,19
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC11
_CC10:
 MOV BX,31
 ADD BX,SP
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BX
_CC11:
 MOV BX,19
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 XCHG DX,BX
 MOV BX,48
 CMP DX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC12
 MOV BX,29
 ADD BX,SP
 XCHG DX,BX
 MOV BX,48
 MOV SI,DX
 MOV [SI],BX
 JMP _CC13
_CC12:
 MOV BX,29
 ADD BX,SP
 XCHG DX,BX
 MOV BX,32
 MOV SI,DX
 MOV [SI],BX
_CC13:
 MOV BX,19
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 CALL _isdigit
 ADD SP,2
 OR BX,BX
 JNZ $+5
 JMP _CC14
 MOV BX,21
 ADD BX,SP
 PUSH BX  ;
 MOV BX,21
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 DEC BX
 PUSH BX  ;
 CALL _atoi
 ADD SP,2
 POP DX
 MOV SI,DX
 MOV [SI],BX
_CC15:
 MOV BX,19
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 CALL _isdigit
 ADD SP,2
 OR BX,BX
 JNZ $+5
 JMP _CC16
 MOV BX,19
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC15
_CC16:
 JMP _CC17
_CC14:
 MOV BX,21
 ADD BX,SP
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BX
_CC17:
 MOV BX,19
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 XCHG DX,BX
 MOV BX,46
 CMP DX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC18
 MOV BX,23
 ADD BX,SP
 PUSH BX  ;
 MOV BX,21
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 PUSH BX  ;
 CALL _atoi
 ADD SP,2
 POP DX
 MOV SI,DX
 MOV [SI],BX
_CC19:
 MOV BX,19
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 CALL _isdigit
 ADD SP,2
 OR BX,BX
 JNZ $+5
 JMP _CC20
 MOV BX,19
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC19
_CC20:
 JMP _CC21
_CC18:
 MOV BX,23
 ADD BX,SP
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BX
_CC21:
 MOV BX,33
 ADD BX,SP
 PUSH BX  ;
 MOV BX,39
 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
 MOV BX,17
 ADD BX,SP
 XCHG DX,BX
 MOV BX,0
 ADD BX,SP
 MOV SI,DX
 MOV [SI],BX
 MOV BX,19
 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
 JMP _CC24
_CC25:
 MOV BX,0
 ADD BX,SP
 XCHG DX,BX
 MOV BX,33
 ADD BX,SP
 MOV BX,[BX]
 MOV SI,DX
 MOV [SI],BL
 MOV BX,0
 ADD BX,SP
 MOV DX,1
 ADD BX,DX
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BL
 JMP _CC23
_CC26:
 MOV BX,17
 ADD BX,SP
 XCHG DX,BX
 MOV BX,33
 ADD BX,SP
 MOV BX,[BX]
 MOV SI,DX
 MOV [SI],BX
 JMP _CC23
_CC27:
 MOV BX,33
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,2
 ADD BX,SP
 PUSH BX  ;
 CALL _itoa
 ADD SP,4
 JMP _CC23
_CC28:
 MOV BX,33
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,2
 ADD BX,SP
 PUSH BX  ;
 MOV BX,2
 PUSH BX  ;
 CALL _itoab
 ADD SP,6
 JMP _CC23
_CC29:
 MOV BX,33
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,2
 ADD BX,SP
 PUSH BX  ;
 MOV BX,8
 PUSH BX  ;
 CALL _itoab
 ADD SP,6
 JMP _CC23
_CC30:
 MOV BX,33
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,2
 ADD BX,SP
 PUSH BX  ;
 MOV BX,10
 PUSH BX  ;
 CALL _itoab
 ADD SP,6
 JMP _CC23
_CC31:
 MOV BX,33
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,2
 ADD BX,SP
 PUSH BX  ;
 MOV BX,16
 PUSH BX  ;
 CALL _itoab
 ADD SP,6
 JMP _CC23
_CC32:
 MOV BX,27
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,35
 RET
 JMP _CC23
_CC24:
 CALL _CCSWITCH
 DW _CC25,99
 DW _CC26,115
 DW _CC27,100
 DW _CC28,98
 DW _CC29,111
 DW _CC30,117
 DW _CC31,120
 DW 0
 JMP _CC32
_CC23:
 MOV BX,25
 ADD BX,SP
 PUSH BX  ;
 MOV BX,19
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _strlen
 ADD SP,2
 POP DX
 MOV SI,DX
 MOV [SI],BX
 MOV BX,23
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 JNZ $+5
 JMP _CC34
 MOV BX,23
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,25
 ADD BX,SP
 MOV BX,[BX]
 CMP DX,BX
 MOV BX,CX
 JGE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC34
 MOV BX,1
 JMP _CC35
_CC34:
 MOV BX,0
_CC35:
 OR BX,BX
 JNZ $+5
 JMP _CC33
 MOV BX,25
 ADD BX,SP
 XCHG DX,BX
 MOV BX,23
 ADD BX,SP
 MOV BX,[BX]
 MOV SI,DX
 MOV [SI],BX
_CC33:
 MOV BX,21
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,25
 ADD BX,SP
 MOV BX,[BX]
 CMP DX,BX
 MOV BX,CX
 JLE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC36
 MOV BX,21
 ADD BX,SP
 PUSH BX  ;
 MOV BX,23
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,27
 ADD BX,SP
 MOV BX,[BX]
 SUB DX,BX
 MOV BX,DX
 POP DX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC37
_CC36:
 MOV BX,21
 ADD BX,SP
 XCHG DX,BX
 MOV BX,0
 MOV SI,DX
 MOV [SI],BX
_CC37:
 MOV BX,31
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC38
_CC39:
 MOV BX,21
 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,29
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,41
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _fputc
 ADD SP,4
 MOV BX,27
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC39
_CC40:
_CC38:
_CC41:
 MOV BX,25
 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 _CC42
 MOV BX,17
 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
 PUSH BX  ;
 MOV BX,41
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _fputc
 ADD SP,4
 MOV BX,27
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC41
_CC42:
 MOV BX,31
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 JNZ $+5
 JMP _CC43
_CC44:
 MOV BX,21
 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 _CC45
 MOV BX,29
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,41
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _fputc
 ADD SP,4
 MOV BX,27
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC44
_CC45:
_CC43:
 JMP _CC5
_CC6:
 MOV BX,27
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,35
 RET
 EXTRN _strlen:NEAR
 EXTRN _itoa:NEAR
 EXTRN _isdigit:NEAR
 EXTRN _CCARGC:NEAR
 EXTRN _fputc:NEAR
 EXTRN _itoab:NEAR
 EXTRN _atoi:NEAR
 EXTRN _CCSWITCH:NEAR
 INCLUDE EPILOG.H
 END

⌨️ 快捷键说明

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