minixa.asm
来自「minix rtos 测试代码」· 汇编 代码 · 共 120 行
ASM
120 行
;****************************************************************
; 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 + =
减小字号Ctrl + -
显示快捷键?