《Linux核心分析》 之 計算機是如何工作的。1

2puT發表於2016-07-30


《Linux核心分析》 之 計算機是如何工作的

第一講 馮 諾依曼體系結構

1.馮 諾依曼體系結構是指具有儲存程式的計算機系統
1.硬體:CPU與記憶體通過主線連線;CPU上有一塊暫存器叫做IP,該暫存器相當於指標,總是指向記憶體的程式碼段;CPU總是執行IP指向的指令然後IP自加一
2.軟體(計算機如何識別指令):通過ABI(程式與計算機的介面介面)

2.大多數指令可以直接訪問記憶體

第二講 X86彙編基礎

  1. X86暫存器詳解(以64位為例)

2.CPU實際取指令的時候通過cs:eip來描述

3.常見的定址方式

1.暫存器定址(操作的都是暫存器):將eax的值直接賦值給edx;
2.立即數定址:將十六進位制的數值123(這個立即數)直接放到edx中(和記憶體也沒有關係);
3.直接定址:將0x123這個地址所指向的記憶體資料放到暫存器edx中;
4.間接定址:將ebx的值作為一個記憶體地址,這個地址所儲存的資料放到edx中;
5.變址定址:與間接定址類似,是把ebx的值加上4作為地址

4.幾條重要指令

%ebp是棧底指標;%esp是棧頂指標。函式的堆疊就由這兩個指標劃定。

5.練習二

【分析】

1.函式應該如下:

int g(int x)
{
return x+8;

}
int main(void)
{
return g(x)-8;
}

第三講 彙編一個簡單的C語言程式(實驗)
實驗在自己的電腦上做的過程如下:




堆疊變化過程如下圖:

【朱國慶 原創作品 轉載請註明出處 《Linux核心分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000】

相關文章