最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

簡單講解匯編語言-X86處理器架構(gòu)--般概念

2022-09-01 15:39 作者:補給站Linux內(nèi)核  | 我要投稿

一般概念:

該博客的匯編語言全是基于x86處理器

X86處理器架構(gòu)包括了所有intel IA-32和Intel64處理器。

1 基本微機設(shè)計

1.1 架構(gòu)

微計算機的基本設(shè)計:中央處理器(CPU)作為算數(shù)和邏輯操作的部件,包含了有限數(shù)量的存儲位置-寄存器(register),高頻時鐘,控制單元CU和算術(shù)邏輯ALU單元。



設(shè)計理念:  

CPU通過主板上CPU插座的引腳與計算機其它部分相連。大部分引腳連接的是數(shù)據(jù)總線、控制總線和地址總線。

內(nèi)存存儲單元(memory storage unit)用于在程序運行時保存指令和數(shù)據(jù)。接收CPU的數(shù)據(jù)請求,將數(shù)據(jù)從隨機存儲器(RAM)傳輸?shù)紺PU,并從CPU傳輸?shù)絻?nèi)存。所有數(shù)據(jù)處理都在CPU內(nèi)進行,因此保存在內(nèi)存找那個的程序在執(zhí)行前需要復(fù)制到CPU。


【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)? ?

總線(bus) 

是一組并行線,把數(shù)據(jù)從一個部分傳送到另一個部分,通常包含四類總線:數(shù)據(jù)類、I/O類、控制類和地質(zhì)類。




時鐘: CPU和系統(tǒng)總線的每一個操作都是由一個恒定速率的內(nèi)部時鐘脈沖來同步。執(zhí)行一條機器指令至少需要一個時間周期,有幾個需要的時鐘則超過了50個。

1.2 指令執(zhí)行周期

CPU在執(zhí)行一條機器指令的時候需要經(jīng)過一系列預(yù)定義的步驟,這些步驟被稱為指令執(zhí)行周期(instruction execution cycle)。

假設(shè)指令指針寄存器已經(jīng)有了想要執(zhí)行指令的地址,以下步驟就為指令執(zhí)行周期:

1 CPU從指令隊列(instruction queue)的內(nèi)存區(qū)域獲得指令,然后立即增加指令指針的值。

2 CPU對指令的二進制位模式進行姨譯碼,這種操作可能會表示該指令有操作數(shù)。

3如果有操作數(shù),CPU就從寄存器和內(nèi)存中取得這個數(shù)

4使用步驟3得到的操作數(shù),CPU執(zhí)行該指令。同時更新部分狀態(tài)標(biāo)志位。

5 如果輸出操作數(shù)也是指令的一部分,CPU還需要存放其執(zhí)行結(jié)果

簡而言之就是取值(fetch)、譯碼(Decode)和執(zhí)行(Execute)。操作數(shù)就是指輸入和輸出的數(shù)的值。

1.3 讀取內(nèi)存

從寄存器讀取信息比從內(nèi)存中讀取數(shù)據(jù)要快得多,是因為讀取內(nèi)存的步驟比寄存器復(fù)雜麻煩。

步驟:

1.將需要的數(shù)據(jù)的地址放到地址總線上

2.設(shè)置處理器RD(讀取)引腳(改變RD的值)#也就是讀取處理器

3.等待一個時鐘周期給存儲器芯片響應(yīng)

4.將數(shù)據(jù)從數(shù)據(jù)總線復(fù)制到目標(biāo)操作數(shù)。

以上每一個步驟都需要一個時鐘周期,而從寄存器讀取只需要一個時鐘周期,所以相對而言從內(nèi)存讀取比寄存器慢。

但是引入了快存的概念大大加速了從內(nèi)存獲取數(shù)據(jù)的速度,所謂快存就是把常用的指令和數(shù)據(jù)存放在高速存儲器cache中,這些指令和數(shù)據(jù)可以很快速的被訪問到。

在x86處理器中有兩種cache,一種是一級cache位于CPU上,另一種是二級cache速度較慢。

1.4加載并執(zhí)行程序

執(zhí)行程序(program)之前,需要用一種工具將程序加載在內(nèi)存中,這種工具被稱為程序加載器(program loader)。加載進內(nèi)存后,CPU需要指向程序的入口地址開始運行。

步驟分解:

1.尋找文件:OS在當(dāng)前磁盤下面查找文件名,如果沒找到就報錯

2.確定程序信息:OS獲取程序的信息,包括文件大小和在磁盤上的位置

3.在內(nèi)存中分配空間:OS確定內(nèi)存中可以使用的下一個位置,將程序加載到內(nèi)存中,為程序分配內(nèi)存,并加載程序大小和位置在表中。

4.執(zhí)行程序形成進程:OS執(zhí)行程序的第一條指令,程序開始運行后,給程序分配一個進程和進程號來運行程序。

5.OS追蹤進程:OS對進程進行追蹤,進行響應(yīng)系統(tǒng)資源的請求。獲取進程在運行時的情況和信息。

6.退出進程移除內(nèi)存:進程結(jié)束后,從內(nèi)存中移除程序。






簡單講解匯編語言-X86處理器架構(gòu)--般概念的評論 (共 條)

分享到微博請遵守國家法律
黄陵县| 辽阳市| 威海市| 囊谦县| 明溪县| 西乡县| 延长县| 张掖市| 若羌县| 香格里拉县| 竹北市| 新闻| 巨鹿县| 金溪县| 雷山县| 晋中市| 静宁县| 抚远县| 荥阳市| 山丹县| 灵川县| 枣庄市| 融水| 繁昌县| 阿城市| 元江| 原平市| 崇阳县| 滦南县| 津市市| 陵川县| 古浪县| 岳阳县| 招远市| 乌拉特后旗| 英德市| 崇仁县| 大城县| 上思县| 甘洛县| 威宁|