我的學習之旅 6 setup s

2021-06-28 08:09:42 字數 1330 閱讀 1893

;gdt表配置參考 linux source code: setup.s, 2個entry,第乙個給cs,第二個給ds

gdt:

.word 0,0,0,0 ! dummy

.word 0x3fff ! 64mb (4000*4096=64mb),由於在boot.s中能識別的最大記憶體為64m

.word 0x0000 ! base address=0

.word 0x9a00 ! code read/exec

.word 0x00c0 ! granularity=4096, 386

.word 0x3fff ! 64mb (4000*4096=64mb)

.word 0x0000 ! base address=0

.word 0x9200 ! data read/write

.word 0x00c0 ! granularity=4096, 386

;中斷表預設為空

idt_48:

.word 0 ! idt limit=0

.word 0,0 ! idt base=0l

gdt_48:

.word 0x800 ! gdt limit=2048, 256 gdt entries

.word 512+gdt,0x9 ! gdt base = 0x9***x

.org 1008

hd_info: ;記錄了第乙個硬碟的chs資訊

.word 0x1111

.word 0x2222

.word 0x3333

.word 0x4444

.word 0x5555

memory_size:

.word 0x1122

current_track:

.byte 0x0

current_sector:

.byte 0x0

retry_count:

.byte 0x03

;核心**最大不能超過64k ,所以最大127個sectors

kernel_sectors:

.byte 0x7f

編譯boot.s和setup.s

as86 -0 -a -o boot.o boot.s

ld86 -0 -s -o boot boot.o

as86 -0 -a -o setup.o setup.s

ld86 -0 -s -o setup setup.o

另外還需要把編譯出來的boot和setup 檔案merge在一起,需要模仿linux build.c做個小工具build_boot和build_setup。

我的學習之旅 3 setup s

setup.s作為承上啟下,主要功能是cpu模式切換 載入核心 並最終跳轉到核心 entry start start setup.s由boot.s 跳轉過來的,所以此時cs暫存器的值自動變為0x9020 為了能訪問setup.s的資料內容,也需要重新整理ds,es暫存器為0x9020 mov ax,...

Tensorflow學習之旅 6

暑假就在接觸tensorflow了,但是一直斷斷續續的,所以現在又開始撿起來繼續學。ps 我用的 源於 大佬寫的很好,我也是跟著他的 在他的 上,寫上 自己的理解。構造乙個3層的網路 輸入層乙個結點,隱層3個結點,輸出層乙個結點 輸入層的維度是 n,1 隱層的維度是 1,10 輸出層的維度是 10,...

我的深度學習的學習之旅

一 前言 二 正文 在去年的七月份,也就是19年的7月份,我參加完現在所在的研究生學校的夏令營之後,得知導師對我很感興趣,而且我也基本上可以獲得本科學校的保研資格,所以就開始接受導師的學習安排。因為我選的方向是深度學習的嵌入式應用,於是就開始了深度學習的學習之旅!並且導師告訴我,不僅要學習深度學習,...