我正在尝试编写将切换任务的程序。一切似乎都正常,但有一件事:
IRQ0_handler:
push eax
push screen_selector
pop es
db 9ah ; far call TSS_1:00
dw 00
dw TSS_4
db 9ah ; far call TSS_1:00
dw 00
dw TSS_2
db 9ah ; far call TSS_1:00
dw 00
dw TSS_3
mov al,20h
out 20h,al
pop eax
iret
这个irq处理程序应该切换任务,但它似乎只调用最后一个。这是其中一个任务的代码(所有这些任务实际上是相同的,不同的任务应该显示不同的字符)
TaskOne:
push es
push screen_selector
pop es
mov ah, 1bh
mov al, '1'
mov es:[di], ax
add di, 2
pop es
iret
jmp TaskOne
答案 0 :(得分:1)
代码实际应该有效。打印字符只是麻烦。