📄 minixa.asm
字号:
;****************************************************************
; MINIX ASM 模块
;
;
;****************************************************************
NAME MINIA
;*****************************************************************
;
; 内部函数声明
;
;
;*****************************************************************
;PUBLIC OS_SAVE_SYSTEM ;保存系统积存器
;PUBLIC OS_RESTORE_SYSTEM ;恢复系统积存器
PUBLIC OS_GOTO_TASK ;进入线程
PUBLIC OS_SAVE_THIS_TASK ;保存当前线程
PUBLIC OS_SAVE_SYSTEM_R ;保存系统R寄存器
PUBLIC OS_RESTORE_SYSTEM_R;恢复系统R积存器
;*****************************************************************
;
; 外部函数声明
;
;
;*****************************************************************
EXTRN CODE (OS_ATTEMPER)
;****************************************************************
;
; 中断入口
;
;****************************************************************
CSEG AT 000BH
LJMP OS_SAVE_ISR_TASK ;跳入保存线程
OS_SAVE_ISR_TASK: ;保存线程
PUSH 0
PUSH 1
PUSH 2
PUSH 3
PUSH 4
PUSH 5
PUSH 6
PUSH 7
PUSH DPL
PUSH DPH
PUSH B
PUSH ACC
PUSH PSW
LJMP OS_ATTEMPER
RET
OS_GOTO_TASK:
POP PSW
POP ACC
POP B
POP DPH
POP DPL
POP 7
POP 6
POP 5
POP 4
POP 3
POP 2
POP 1
POP 0
RETI
OS_SAVE_THIS_TASK:
PUSH 0
PUSH 1
PUSH 2
PUSH 3
PUSH 4
PUSH 5
PUSH 6
PUSH 7
PUSH DPL
PUSH DPH
PUSH B
PUSH ACC
PUSH PSW
LJMP OS_ATTEMPER
RET
OS_SAVE_SYSTEM_R:
PUSH 0
PUSH 1
PUSH 2
PUSH 3
PUSH 4
PUSH 5
PUSH 6
PUSH 7
MOV ACC,SP
SUBB A,#08
MOV SP,ACC
RET
OS_RESTORE_SYSTEM_R:
POP 7
POP 6
POP 5
POP 4
POP 3
POP 2
POP 1
POP 0
MOV ACC,SP
ADD A,#08
MOV SP,ACC
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -