(一)手寫作業系統 中文彙編

2021-10-02 12:17:41 字數 2918 閱讀 4792

前段時間想寫個簡易作業系統模式。覺得用漢字彙編去寫作業系統豈不是更有意思。於是借鑑nasm做乙個簡易中文彙編,用來解析過程中用到的一些基本指令,為了後續的方便,暫時叫做najc。下面通過乙個案例展示下:       

裝載 0x7c00         

跳      主體

字      0x90

字      "najc    "

雙字 512

字      1

雙字 1

字      2

雙字 224    

雙字 2880

字      0xf0

雙字 9

雙字 18

雙字 2

四字 0

四字 2880

字      0,0,0x29

四字 0xffffffff

字      "jc-os      "

字      "fat12   "

補字 18

主體:    移      寄加,0 

移      段堆,寄加

移      棧指,0x7c00

移      段數,寄加

移      段附,寄加

移      變源,訊息

迴圈輸出:

移      寄加低,[變源]

加      變源,1

比      寄加低,0

等跳 最後

移      寄加高,0x0e

移      寄基,15

中斷 0x10

跳      迴圈輸出

最後:    休

跳      最後

訊息:    字      0x0a, 0x0a

字      "hellonajc"

字      0x0a

字      0

補字 0x7dfe-0x7c00-($-$$)

字      0x55, 0xaa

字      0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00

補字 4600

字      0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00

補字 1469432

上面**做些解釋,「裝載

0x7c00

」是主引導的位址,主引導一共是

512位元組。「字

"fat12   "

」看可以看出用來只做

fat12

的軟盤,上面是相關格式。「字

"hellonajc"

」是引導啟動時輸入的資訊。這裡還不能使用漢字,由於這時的系統還沒有漢字的格式支援,中斷指令

int 0x10

不支援中文。「補字

0x7dfe-0x7c00-($-$$)

」,為了保證主引導是

512位元組,這裡使用從

0x7dfe

位址-0x7c00

位址,其實就是

510,

($-$$)

是從0x7c00

開始已經寫的位元組數。加上「字

0x55, 0xaa

」正好是

512。假設上面儲存為

test.jc。

通過指令

najc -f test.jc -o test.img

生成的test.img

檔案可以通過

vmware

虛擬機器載入測試。

鑑於使用目前只完成部分彙編指令:

編號中文指令

對照英文指令1

裝載 org2字db

3雙字dw4

四字dd5補字

resb6跳

jmp7

比cmp8溢跳

jo9不溢跳jno

10低跳

jb11

不低跳jnb

12等跳

je13

不等跳jne

14高跳

ja15

不高跳jna

16低等跳

jbe17

不低等跳

jnbe

18負跳

js19

非負跳jns

20奇偶跳

jp21

非奇偶跳

jnp22

小於跳jl

23不小於跳

jnl24

大於跳jg

25不大於跳

jng26

移mov27加

add28

寄加ax

29寄加高

ah30

寄加低al

31寄基

bx32

寄基高bh

33寄基低

bl34

寄計cx

35寄計高

cxh36

寄計低cxl

37變源

si38

變目di

39基指

bp40

棧指sp

41高寄加

eax42

高寄基ebx

43高寄計

ecx44

高寄數edx

45高棧指

esp46

高基指ebp

47高變源

esi48

高變目edi

49段代

cs50

段數ds

51段堆

ss52

段附es

53段附1

fs54

段附2gs

55入棧

push

56出棧

pop57

中斷int58休

hlt

(一)手寫spring IOC容器

設計bean工廠介面 如何告訴他建立bean?建立什麼bean?bean工廠實現 畫完整uml類圖 編寫 測試總結 1.ioc是什麼?ioc inversion of control 控制反轉,也稱依賴倒置反轉。反 依賴物件的獲得權被反轉了,由自己建立,變為從ioc容器獲取,和自動注入。2.帶來什麼...

TensorFlow實戰(一)手寫數字識別

tensorflow實戰 第一章是基礎,沒什麼好看的,跳過出,第二章是說tensorflow和其他的模組,比如caffe等,caffe以前也說過,比較容易,但是配置比較麻煩 cpu的容易點,gpu比較麻煩 第三章 簡單說一下安裝吧,就行在命令列輸入 前提是你已經有python pip install...

一手寫不出大市場

丁乙乙 手寫板?就是那種給老人用的?在回答記者關於 你是否會購買手寫板 時,一位20來歲的小夥子脫口而出這句話。怎麼會呢?記者真是從來沒有聽到這樣的理論。怎麼不是?我每天網上聊天,雖然打的是全拼,但也蠻快的。有什麼必要再去用手寫?只有那些連拼音也掌握不了的老人才會去用呢!短短幾句話,雖然難免有失偏頗...