我的學習之旅 1 boot s

2021-06-28 07:49:34 字數 1022 閱讀 9616

2015.1.20 

目標: 看完趙炯的《linux核心完全注釋》,嘗試自己在x86下寫乙個簡單的os,然後移植網絡卡驅動,實現基本網路功能(ping)

--編譯工具:as86和ld86

--源檔名:boot.s

**:

;    功能:

; 1. 拷貝 boot.s 從 0x07c0:0000 到 0x9000:0000

; 2. 載入 setup.s 到記憶體 0x9020:0000

;boot.s**必須存放在磁碟的第乙個扇區,且大小不能超過512位元組。

;bios在每次啟動後都會載入第一扇區內容到0x07c0:0000記憶體位址處

entry _start

_start:

;當前cpu還處在16bits 實模式,只能訪問0000:0000到ffff:ffff範圍大小的位址

;把0x7c00:0000位址起 512 bytes 拷貝到 0x9000:0000,然後繼續執行

;源位址

mov ax, #0x07c0

mov ds, ax

;目的位址

mov ax, #0x9000

mov es, ax

;清si和di

sub si, si

sub di, di

;拷貝256次,每次2個位元組

mov cx, #256 ;

rep

movw

;拷貝完後可以跳到 0x9000:go位址繼續執行下面的**了

jmpi go, 0x9000

go:;執行跳轉指令後cs段的內容自動重新整理為0x9000.

mov ax, cs

[boot.s 待續]

;重新整理ds,es,ss段暫存器為0x9000

mov ds, ax

mov es, ax

mov ss, ax

;臨時設定sp堆疊指標為:0x9000:ff00以便後面的函式呼叫

mov sp, #0xff00

我的程式設計學習之旅1

在學校考完試後在學校耍了兩天的遊戲就匆匆的回家了,帶了幾本c程式設計的書 c和指標 programming in c windows 程式設計 打算回家啃一啃。不過,情況幾本和以前一樣,回去先玩了幾天才開始的。最先看的是 windows 程式設計 開始還是和其他書類似,以hello world開始,...

我的機器學習之旅 1

今天是2018年1月30日。為什麼要學習機器學習呢?這和我的課題緊密相關,我的研究課題是仿魚類側線系統來感知水流環境和避障等。水生生物,尤其是魚類,它們能夠在光線很差甚至是沒有光線的環境中自由的游泳,躲避障礙物甚至覓食,這些行為已經被生物學家證實和側線系統息息相關。下圖展示了魚的側線 魚的表面分布著...

我的springMVC之旅 1

總想寫一篇關於springmvc的文章。可是一直不敢下筆。我只是乙個超級初級的spring菜鳥,總共接觸spring不到1個月。spring我真的沒有發言權。但是我確實看到了spring的強大,真的可以帶來軟體工程的春天。其實spring最亮的並不是mvc,而是強大的ioc 中文意思是控制反轉,又叫...