📄 context.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 + -