2019年7月25日 星期四

自製64位元作業系統14──進入核心

我們已經萬事俱備,只欠最後一部:跳進核心。核心的位置已經在我們讀取核心的函式的時候被存在EAX暫存器中了。我們輕輕鬆鬆就可以利用JMP指令來跳入核心,像是這樣。

movl %eax, %edx
  jmp %edx
其實有沒有把它放進EDX不太重要,直接用EAX也能達成任務。為了要測試我們有沒有成功跳進去,所以我們趕快把kernel.c的程式修改修改,製作出一個暫時性的列印函式,讓我們來檢查。
void bootEntry(void)
{
  *(int *)0xB8000 = 0x0F5A0F59;
  for (;;) ;
}
我們直接控制視訊記憶體,在左上角印上YZ兩個白色的字。然後我們就可以利用模擬機測試一下了。目前的程式:https://github.com/TNPLR/nos/tree/0.13.5
VirtualBox測試畫面
Bochs測試畫面
QEMU測試畫面


👉【幫我們一個忙!】👈

👋如果您喜歡這篇文章,請在下方按5個Like!
 ❤您的支持是我們最大的動力!

您只要登入帳號(Facebook、Google),在下方按5個Like,我們就會收到來自LikeCoin基金會的贊助。
您只需要支持我們,完全不會花到錢!