30天自製作業系統day2

2021-07-01 21:31:00 字數 609 閱讀 6949

這一章主要講解彙編基礎知識和makefile的使用

org指令:指定開始執行程式的時候,把程式裝載到記憶體的哪個位址。如果不指定,則預設從0x0開始,會與bios程式發生衝突。程式helloos.nas中,指定的是0x7c00。這是因為規定的啟動區內容裝載位址是0x00007c00-0x00007dff。

ax,cx,bx等暫存器,在源**中使用時看不出差別,但本質上是不一樣的。ax適合用來計算。例如:

add cx, 0x1234

add ax, 0x1234

彙編成機器語言時,使用cx的是乙個4位元組的指令,而使用ax的是乙個3位元組的指令。

此外,cx是為方便計數而設計的(loop迴圈時作為迴圈次數),bx適合計算記憶體位址的基點。

ax,bx,cx,dx暫存器是16位的,每個包含高位和低位(如al,ah),32位的機器中有32位的暫存器,如eax,ebx,ecx,edx。

從記憶體讀/寫資料:例如

mov

byte

[123], ax

movax, word

[bx]

注意可以放在中指定記憶體位址的暫存器只有bx,bp,si,di。

30天自製作業系統 Day2

還是follow書籍,並且也參考別人的筆記,還是這位大佬的筆記做的很詳細,把鏈結放在這裡 既然別人已經做了很詳細的筆記了,我就不用再重複了。學習中遇到了一些問題,和大家分享一下。最開始我按照書裡的描述,把檔案copy到helloos4下面,執行make r helloos.img的時候,報錯說 no...

30天自製作業系統

第一天的內容很少,是一些簡單的基礎知識,在這裡我就沒有必要寫出來了,只說出大概的輪廓了,然後我會對其中的幾點進行詳細的解釋。文章的第一天的輪廓大概是這樣的,作者首先用二進位制編輯器做了乙個顯示二進位制的程式,然後用彙編完全db的形式,後又進行改善,最後以比較標準的組合語言編寫,但程式主體部分還沒有翻...

30天自製作業系統day01

第一天的標題,從計算機結構到匯程式設計序入門。這一天作者共講了一下內容 1.作者上來就用二進位制編輯器製作了乙個軟盤映象boot.img。像作者一樣,現在已經不需要再去購買軟盤,再說就算想買也不一定買得到。本人使用qemu載入軟盤映象,命令 qemu system i386 fda boot.img...