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

📄 context.asm

📁 公开源代码的嵌入式操作系统r&s!建议学习!
💻 ASM
字号:
        [BITS 16]


%define  FUN(name)   global  name
%define  VAR(name)   extern  name

 ;##########################################################

global  __task_init_bkp

FUN(___switch_start)
___switch_start:      
        mov     bp, sp
        mov     ax, [bp+4]      ; load next sp
        mov     bx, [bp+6]
        mov     ss, bx
        mov     sp, ax
        retf
        
__task_init_bkp:
        pop     ds
        popf
        retf

 ;##########################################################
FUN(___switch_to)
___switch_to:
        push    bp
        mov     bp, sp
        push    si
        push    di
        push    es

        push    seg __task_bkp
        push    __task_bkp
        
        les     bx, [bp+0x06]      ; current ptr
        mov     [es:bx+2], ss
        mov     [es:bx+0], sp

        mov     ax, [bp+0x0a]      ; load next sp
        mov     bx, [bp+0x0c]
        mov     ss, bx
        mov     sp, ax

        retf
        
__task_bkp:
        pop     es
        pop     di
        pop     si
        pop     bp
        retf

;##########################################################
extern ___timer_interrupt

FUN(___timer_intr_s)
___timer_intr_s:

        pusha
        push    es
        push    ds

        call    far ___timer_interrupt

        pop     ds
        pop     es
        popa
        iret


⌨️ 快捷键说明

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