深刻理解程序設計-使用Linux 32bit 彙編語言

 計算機體系結構編程

2.1 內存結構翻譯

1,計算機將每一個固定大小的存儲單元依次編號,每一個存儲單元大小爲1個Byte(8個bit)指針

2,內存便可以存儲CPU指令,也能夠存儲數據。只是CPU對內存數據的解釋不同。內存

2.2 CPU的構造編譯器

CPU一次從內存中讀取一條指令並執行,這個過程即爲讀取-執行週期(又稱爲指令週期)。須要如下元件:it

1,程序計數器:保存即將執行的下一條指令的內存地址。CPU先查看程序計數器,而後提取存放在指定內存地址的數字,接着傳遞給指令解碼器。io

2,指令解碼器:解釋指令。具體包括操做碼、涉及的內存單元。編譯

3,數據總線:簡單的理解爲CPU和內存之間的物理連線。經過它獲取內存單元中存儲的數據程序

4,通用寄存器:進行運算的主要地方,通常用來處理算術運算、比較運算等。CPU的通用寄存器數量較少,大部分信息存儲在主存中。數據

5,邏輯計算單元:CPU取回須要的全部數據後,將數據和解碼後的指令傳遞給邏輯計算單元。它是實際執行指令的地方。

2.5 尋址方式(數據訪問方式)

1,當即數尋址:在指令中直接給出數值,而不是告訴CPU去哪一個地址取數據

2,寄存器尋址:訪問CPU的寄存器,而不是內存地址

3,直接尋址(針對內存):訪問內存地址

4,變址尋址(針對內存):包含內存地址和變址寄存器(存儲相對內存地址的偏移)

5,間接尋址(針對寄存器中保存的內存地址):指令中包含一個寄存器,該寄存器中存儲的是指向要訪問數據的指針

6,基址尋址(針對寄存器中保存的內存地址+偏移量):間接尋址+偏移量

 

彙編術語

字長:計算機中,典型寄存器的大小。

  x68 32bit的字長爲4字節

  地址的長度也是4字節

指針:存儲在內存中的數據的地址。

僞指令:在彙編程序中,任何以.開始的指令都不會被直接翻譯成機器指令,這些針對彙編程序自己的指令,它首先要通過編譯器的處理,而不是直接由計算機執行,被稱爲彙編指令僞操做

.section:它將彙編程序分爲幾個部分。通常包括如下幾個段:

.data:表示數據段的開始,數據段要列出程序數據所需的全部內存存儲空間。

.text:文本段(地址段),表示地址段的開始,包括程序執行的指令。

相關文章
相關標籤/搜索