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

📄 minixa.asm

📁 minix rtos 测试代码
💻 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 + -