程序和指令的關(guān)系 1條指令的執(zhí)行過程 機器指令的執(zhí)行過程
南京大學(xué)公開課:計算機系統(tǒng)基礎(chǔ)(二)程序的執(zhí)行和存儲訪問-第1講 程序和指令的關(guān)系-網(wǎng)易公開課 https://open.163.com/newview/movie/free?pid=BFBG7RAVL&mid=NFBG8ROIR
【計算機系統(tǒng)基礎(chǔ)(二)南京大學(xué) 主講:袁春風(fēng) 南京大學(xué)】https://www.bilibili.com/video/BV1rE41127Re
南京大學(xué)公開課:計算機系統(tǒng)基礎(chǔ)(二)程序的執(zhí)行和存儲訪問-第2講 一條指令的執(zhí)行過程-網(wǎng)易公開課 https://open.163.com/newview/movie/free?pid=BFBG7RAVL&mid=DFBG8ROO5
?
第1周程序執(zhí)行概述
第1講程序和指令的關(guān)系
第2講一條指令的執(zhí)行過程
第3講在IA-32中一條指令的執(zhí)行過程
第4講CPU的基本功能與結(jié)構(gòu)
?
程序及指令的執(zhí)行過程
?
°程序和指令的關(guān)系?程序由一條一條指令組成,指令按順序存放在內(nèi)存連續(xù)單元
?
°程序的執(zhí)行:周而復(fù)始地執(zhí)行一條一條指令?正常情況下,指令按其存放順序執(zhí)行?遇到需改變程序執(zhí)行流程時,用相應(yīng)的轉(zhuǎn)移指令(包括無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、調(diào)用指令和返回指令等)來改變程序執(zhí)行流程
?
°程序的執(zhí)行流的控制?將要執(zhí)行的指令所在存儲單元的地址由程序計數(shù)器PC給出,通過改變PC的值來控制執(zhí)行順序
?
°指令周期:CPU取出并執(zhí)行一條指令的時間
?
cycle per instruction?
?

?

?
?

?
程序執(zhí)行需要解決的問題?
如何判定每條指令有多長?如何判定操作類型、寄存器編號、立即數(shù)等?如何區(qū)分第2行和第3行mov指令的不同?如何確定操作數(shù)是在寄存器中還是在存儲器中?一條指令執(zhí)行結(jié)束后如何正確讀取到下一條指令?

?
?
異常:指令無法執(zhí)行,原因:缺頁、越界、操作數(shù)未定義

?
異常是在CPU內(nèi)部發(fā)生的,中斷是由外部事件引起的
機器指令的執(zhí)行過程
°取指令:從PC所指單元取出指令送指令寄存器(IR),并增量PC。?如add函數(shù),開始PC(IA-32的EIP)中存放的是0x0848394,CPU根據(jù)PC取指令送IR,每次總是取最長指令字節(jié)數(shù),假定最長指令是4個字節(jié),即IR為32位,此時,也即55 89 E5 8BH被取到IR中。
°指令譯碼:不同指令其功能不同,因而需要不同的操作控制信號。?CPU根據(jù)不同操作碼譯出不同控制信號。對于上述取到IR中的55 89 E58BH譯碼時,可根據(jù)高5位01010譯碼得到push指令的控制信號。
°源操作數(shù)地址計算并取操作數(shù):根據(jù)尋址方式確定源操作數(shù)地址計算方式,若是存儲器數(shù)據(jù),則需一次或多次訪存;若為間接尋址或兩操作數(shù)都在存儲器的雙目運算,則需多次訪存;若是寄存器數(shù)據(jù),則直接從寄存器取數(shù)。
°執(zhí)行數(shù)據(jù)操作:在ALU或加法器等運算部件中對取出的源操作數(shù)進行運算。
°目的操作數(shù)地址計算并存結(jié)果:根據(jù)尋址方式確定目的操作數(shù)地址計算方式,若是存儲器數(shù)據(jù),則需要一次或多次訪存(間接尋址時);若是寄存器數(shù)據(jù),則在進行數(shù)據(jù)操作時直接存結(jié)果到寄存器。
°指令地址計算并將其送PC。順序執(zhí)行時,PC加上當(dāng)前指令長度;遇到轉(zhuǎn)移類指令時,則需要根據(jù)條件碼、操作碼和尋址方式等確定下條指令地址。
?
?機器指令的執(zhí)行過程
?
° 每條指令的功能總是由以下四種基本操作來實現(xiàn):
讀取某一主存單元的內(nèi)容,并將其裝入某個寄存器(取指, 取數(shù))
把一個數(shù)據(jù)從某個寄存器存入給定的主存單元中(存結(jié)果)
把一個數(shù)據(jù)從某寄存器送到另一寄存器或者ALU(取數(shù),存結(jié)果)
進行算術(shù)或邏輯運算(PC+”1”,計算地址,運算)
?
指令執(zhí)行過程中查詢各種異常情況,并在發(fā)現(xiàn)異常時轉(zhuǎn)異常處理
指令執(zhí)行結(jié)束時查詢中斷請求,并在發(fā)現(xiàn)中斷請求時響應(yīng)中斷
?
° 操作功能可形式化描述
描述語言稱為寄存器傳送語言RTL (Register Transfer Language)
?
?馮.諾依曼結(jié)構(gòu)模型機
不同架構(gòu)支持的指令集不同,同一種指令的實現(xiàn)方式和功能也可能不同

?
?IA-32的體系結(jié)構(gòu)

鏈接:https://www.dianjilingqu.com/585206.html