用純匯編手寫(xiě)操作系統(tǒng)
【匯編】基礎(chǔ)知識(shí)
為了兼容各種機(jī)器,這里以Intel Architecture 32-bit(簡(jiǎn)稱(chēng)IA-32,屬于X86體系的32位版本,從最早的80386芯片到后續(xù)的Pentium 4使用的都是這種架構(gòu))為例,而之后的其他架構(gòu)都是在IA-32的基礎(chǔ)上進(jìn)行擴(kuò)展,其基本概念跟具體原理大同小異,暫時(shí)先做簡(jiǎn)單介紹,后續(xù)有需要再進(jìn)行擴(kuò)充。
IA-64架構(gòu)是Intel推出的64位處理器架構(gòu),基于這種架構(gòu)的芯片具備64位運(yùn)算能力,64位尋址空間以及64位數(shù)據(jù)通路,在數(shù)據(jù)處理能力,系統(tǒng)穩(wěn)定性,安全性,可用性等方面都具有突破性的提升。
x86-64架構(gòu),有時(shí)候會(huì)簡(jiǎn)稱(chēng)為x64,是IA-32架構(gòu)的擴(kuò)展版本,在這種架構(gòu)下,芯片既可以支持原有的32位運(yùn)算,同時(shí)也具備了處理64位運(yùn)算的能力。

. 數(shù)據(jù)
計(jì)算機(jī)運(yùn)行的程序由數(shù)據(jù)與指令共同表達(dá),其中數(shù)據(jù)在匯編上主要可以分成三類(lèi):
寄存器,指的是數(shù)據(jù)存放在寄存器中
內(nèi)存引用,指的是存儲(chǔ)在內(nèi)存中的數(shù)據(jù),通過(guò)地址引用的方式對(duì)數(shù)據(jù)進(jìn)行讀寫(xiě)
立即數(shù),指的是參與計(jì)算的常量
1.1 寄存器
寄存器是直接內(nèi)嵌在CPU上的存儲(chǔ)組件,其特點(diǎn)是存取速度快,容量小,小到幾乎每個(gè)寄存器都有自己?jiǎn)为?dú)的名字,甚至有多個(gè)名字。
IA-32架構(gòu)總共提供了16個(gè)基本的寄存器,這些寄存器按照功能可以分成如下4類(lèi):
通用寄存器
段寄存器
狀態(tài)和控制寄存器
指令寄存器