《Linux核心分析》 之 計算機是如何工作的。1
《Linux核心分析》 之 計算機是如何工作的
第一講 馮 諾依曼體系結構
1.馮 諾依曼體系結構是指具有儲存程式的計算機系統
1.硬體:CPU與記憶體通過主線連線;CPU上有一塊暫存器叫做IP,該暫存器相當於指標,總是指向記憶體的程式碼段;CPU總是執行IP指向的指令然後IP自加一
2.軟體(計算機如何識別指令):通過ABI(程式與計算機的介面介面)
2.大多數指令可以直接訪問記憶體
第二講 X86彙編基礎
- 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】
相關文章
- 《Linux核心分析》 之 作業系統是如何工作的。2Linux作業系統
- 計算機實際上是如何工作的計算機
- “雲端計算”工作是如何讓企業受益的?
- OpenStack 的七個核心元件如何工作 - 1元件
- 我是如何學習計算機程式設計的計算機程式設計
- 計算機方面核心期刊計算機
- 計算機網路的核心概念計算機網路
- 雲端計算對IT工作者 是挑戰還是機遇?
- 計算機底層是如何訪問顯示卡的計算機
- Linux核心的同步機制(1)(轉)Linux
- 計算機基本工作原理計算機
- ? 一文讀懂兩臺計算機之間是如何通訊的計算機
- 如何檢查你的計算機使用的是 UEFI 還是 BIOS計算機iOS
- 計算機網路之七:TCP協議(1)計算機網路TCP協議
- 最通俗的解釋下雲端計算,雲端計算的核心是什麼?
- 計算機網路的 89 個核心概念計算機網路
- 邊緣計算工作負載:虛擬機器,容器還是裸機?負載虛擬機
- 你真的知道計算機是如何進行減法運算的嗎?計算機
- UC Berkeley EECS是如何培養計算機學生的計算機
- 外甥女問我計算機是如何組成的?計算機
- Linux 核心 tasklet 機制和工作佇列Linux佇列
- 第1章 計算機網路的概述——計算機網路計算機網路
- 撐起移動AI江山的浮點計算,到底是如何工作的?AI
- 我是如何把計算機網路考了100分的?計算機網路
- 雲端計算和雲服務是一樣的嗎?計算機linux運維開發計算機Linux運維
- Linux核心是如何建立一個新程式的?Linux
- 你知道 Linux 核心是如何構建的嗎?Linux
- 如何做好雲端計算的運維工作?運維
- 計算機組成原理核心考點計算機
- windows核心原理分析之DPC函式的執行(1)Windows函式
- 雲端計算(網際網路)計算的基本機制是病毒機制
- 計算機面試重難點之計算機網路面試計算機網路
- 計算機基礎之計算機硬體系統計算機
- 學計算機的人是很幸福的計算機
- 計算機是怎樣跑起來的計算機
- Ruby 和 Python 分析器是如何工作的?Python
- JavaScript是如何工作的: Web推送通知的機制JavaScriptWeb
- 趨勢分析之雲端計算