freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計算機組成原理教案設(shè)計(編輯修改稿)

2025-07-07 22:21 本頁面
 

【文章內(nèi)容簡介】 了精確的表示 ,無窮大也明確表示 .對于絕對值較小的數(shù) ,可以采用非規(guī)格化數(shù)表示 ,減少下溢精度損失 .非規(guī)格化數(shù)的隱含位是 0,不是 1. (三) 指令系統(tǒng) 人們習慣把每一條機器語言的語句稱為 機器指令 ,而又將全部機器指令的集合稱為機器的 指令系統(tǒng) 指令的執(zhí)行過程 讀取指令 指令地址 (在 PC 中 )送到 地址寄存器 讀主存 ,讀出內(nèi)容 (指令代碼 )送入指令寄存器 IR 分析指令 形成下一條指令的地址并送到 PC 中 執(zhí)行指令 用一到幾個執(zhí)行步驟 ,完成指令的運算、操作功能 , 不同的指令操作步驟和具體運算、操作功能各不相同 減產(chǎn)有無中斷請求 無中斷請求、進入下一條指令的執(zhí)行過程 (一 ) 指令格式 1. 指令的基本格式 計算機是通過執(zhí)行指令來處理各種數(shù)據(jù)的 .為了指出數(shù)據(jù)的來源 ,操作結(jié)果的去向及所執(zhí)行的操作 ,一條指令必須包含下列信息 : (1)操作碼 ,具體說明了操作的性質(zhì)及功能 . (2)操作數(shù)的地址 . (3)操作結(jié)果的存儲地址 . (4)下一條指令的地址 . 從上述分析可知 ,一條指令實際上包括兩種信息即操作碼和地址碼 . 操作碼 (operation code)用來表示該指令所要完成的操作 (如加 ,減 ,乘 ,除 ,數(shù)據(jù)傳送等 ),其長度取決于指令系統(tǒng)中的指令條數(shù) .如操作碼占 7 位 ,則該機器最多包含 27=128條指令 . 地址碼用來描述該指令的操作對象 ,或 直接給出操作數(shù)或 指出操作數(shù)的存儲器地址或寄存器地址 (即寄存器名 ). 操作碼的長度不固定會增加指令譯碼和分析難度 ,使控制器的設(shè)計復雜 . 操作碼 尋址地址 形式地址 A 形式地址 指令字中的地址 有效地址 操作數(shù)的真實地址 約定 指令字長 =存儲字長 =機器字長 2. 定長操作碼指令格式 1)零地址指令 格 式 : OP—— 操作碼 OP 指令中只有操作碼 ,而沒有操作數(shù)或沒有操作數(shù)地址 .這種指令有兩種可能 : (1)無需任何操作數(shù) ,如空操作指令 ,停機指令等 . (2)所需的操作數(shù)是默認的 .如堆棧結(jié)構(gòu)計算機的運算指令 ,所需的操作數(shù)默認在堆棧中 ,由堆棧指針 SP 隱含指出 ,操作結(jié)果仍然放回堆棧中 .又如 Intel 8086 的字符串處理指令 ,源 ,目的操作數(shù)分別默認在源變址寄存器 SI 和目的變址寄存器 DI 所指定的存儲器單元中 . 2)一地址指令 格式 : OP—— 操作碼 A—— 操作數(shù)的存儲器地址或寄存器名 指令中只給出一個地址 ,該地址既是 操作數(shù)的地址 ,又是操作結(jié)果的存儲地址 .如加 1,減 1 和移位等單操作數(shù)指令均采用這種格式 ,對這一地址所指定的操作數(shù)執(zhí)行相應的操作后 ,產(chǎn)生的結(jié)果又存回該地址中 . 在某些字長較短的微型機中 (如早期的 Z80,Intel8080,MC6800 等 ),大多數(shù)算術(shù)邏輯指令也采用這種格式 ,第一個源操作數(shù)由地址碼 A 給出 ,第二個源操作數(shù)在一個默認的寄存器中 ,運算結(jié)果仍送回到這個寄存器中 ,替換了原寄存器內(nèi)容 ,通常把這個寄存器稱累加器 . 3)二地址指令 格式 : OP—— 操作碼 A1—— 第一個源操作數(shù)的存儲器地址或寄存器地址 . A2—— 第二個源操作數(shù)和存放操作結(jié)果的存儲器地址或寄存器地址 . 這是最常見的指令格式 ,兩個地址指出兩個源操作數(shù)地址 ,其中一個還是存放結(jié)果的目的地址 .對兩個源操作數(shù)進行操作碼所規(guī)定的操作后 ,將結(jié)果存入目的地址 ,在本例中即為 A2 指定的地址 4)三地址指令 格式 : OP—— 操作碼 A1—— 第一個源操作數(shù)的存儲器地址或寄存器地址 A2—— 第二個源操作數(shù)的存儲器地址或寄存器地址 A3—— 操作結(jié)果的存儲器地址或寄存器地址 其操作是對 A1,A2 指出的兩個源操作數(shù)進行操作碼 (OP)所指 定的操作 ,結(jié)果存入 A3中 . 6)多地址指令 在某些性能較好的大 ,中型機甚至高檔小型機中 ,往往設(shè)置一些功能很強的 ,用于處理成批數(shù)據(jù)的指令 ,如字符串處理指令 ,向量 ,矩陣運算指令等 . 為了描述一批數(shù)據(jù) ,指令中需要多個地址來指出數(shù)據(jù)存放的首地址 ,長度和下標等信息 3. 擴展操作碼指令格式 設(shè)某機器的指令長度為 16位 ,包括 4位基本操作碼字段和三個 4位地址字段 ,其格式下 : OP(4) A1(4) A2(4) A3(4) 4位基本操作碼有 16 個碼點 (即有 16 種組合 ),若全部用于表示三地址指令 ,則只有 16 條 .但 ,若 三地址指令僅需 15 條 ,兩地址指令需 15條 ,一地址指令需 15 條 ,零地址指令需 16 條 ,共 61 條指令 ,應如何安排操作碼? 顯然 ,只有 4 位基本操作碼是不夠的 ,必須將操作碼的長度向地址碼字段擴展才行 . 一種可供擴展的方法和步驟如下 : (1)15 條三地址指令的操作碼由 4位基本操作碼從 0000~ 1110給出 ,剩下一個碼點 1111用于把操作碼擴展到A1,即 4 位擴展到 8位 。 (2)15 條二地址指令的操作碼由 8位操作碼從 11110000~ 11111110給出 ,剩下一個碼點 11111111用于把操作碼擴展到 A2,即從 8 位擴展到 12 位 。 (3)15 條一地址指令的操作碼由 12 位操作碼從 111111110000~ 111111111110 給出 ,剩下的一個碼點111111111111 用于把操作碼擴展到 A3,即從 12 位擴展到 16位 。 (4)16條零地址指令的操作碼由 16 位操作碼從 1111111111110000~ 1111111111111111給出 . 指令字長取決于 操作碼的長度 、 操作數(shù)地址的長度 和 操作數(shù)地址的個數(shù) .為了提高指令的運行速度和節(jié)省存儲空間 ,通常盡可能的吧常用的指令 (如數(shù)據(jù)傳輸指令、算邏運算指令等 )設(shè)計成單字長或短字長格式的指令 . 操作數(shù)類型 地址 地址實際也可以看做是一種數(shù)據(jù) ,在許多情況下要計算操作數(shù)的地址 .這時地址可看作無符號的整數(shù) 數(shù)字 計算機中常見的數(shù)字有定點數(shù)、浮點數(shù)和十進制數(shù)字 字符 在應用計算機時 ,文本或者字符串也是一種常見的數(shù)據(jù)類型 邏輯數(shù)據(jù) 計算機除了做算術(shù)運算外 ,有時還做邏輯運算 ,此時 n個 0和 1的組合不是被看做算術(shù)數(shù)字而被看做邏輯數(shù) 奔騰 Pentium處理器的數(shù)據(jù)類型有邏輯數(shù)、有符號數(shù) (補碼 )、無符號數(shù)、壓縮和未壓縮的 BCD碼、地址指針、位串以及浮點數(shù) (符合 IEEE754標準 )等 指令操作 類型 數(shù)據(jù)傳送包括寄存器與寄存器 ,寄存器與存儲單元 ,存儲單元與存儲單元之間的傳送 這操作可實現(xiàn)算術(shù)運算 (加 ,減 ,乘 ,除 ,增 1,減 1,取負即求補 )邏輯運算 (與 ,或 ,非 ,異或 ) 移位可分為算術(shù)移位 ,邏輯移位和循環(huán)移位三種 無條件轉(zhuǎn)移 不受任何 約束條件 直接把程序轉(zhuǎn)移到下一條需執(zhí)行指令的地址 條件轉(zhuǎn)移 根據(jù)當前指令的執(zhí)行結(jié)果決定是否需要轉(zhuǎn)移 調(diào)用與返回 ? 子程序可在多處被調(diào)用 ? 子程序調(diào)用可出現(xiàn)在子程序中 ,即允許子程序嵌套 ? 每個 CALL指令都對應一條 RETURN指令 CPU必須記住返回地址 ,使子程序能準確返回 ,返回地址存放在以下 3處 ? 寄存器內(nèi) .機器內(nèi)設(shè)有專用寄存器 ,專用于存放返回地址 ? 子程序的入口地址內(nèi) ? 棧頂內(nèi) .現(xiàn)代計算機都設(shè)有堆棧 ,執(zhí)行 RETURN 指令后 ,便可自動從堆棧內(nèi)取出應返回的地址 陷阱 (Trap)與陷阱指令 其實是一種意外事故的中斷 ,一般不提供給用戶使用 ,作為隱指令 ,再出現(xiàn)故障時 ,由 CPU自動產(chǎn)生并執(zhí)行 對于 I/O 單獨編址的計算機而言 ,通常設(shè)有輸入輸出指令 ,他完成從外設(shè)中的寄存器讀入一個數(shù)據(jù)到 CPU寄存器內(nèi) ,或?qū)?shù)據(jù)從 CPU的寄存器輸出至某外設(shè)的寄存器中 包括等待指令、停機指令、空操作指令、開中斷指令、關(guān)中斷指令、置條件碼指令等 備注 有些大型或巨型機還設(shè)有向量指令 ,可對整個向量或矩陣進行求和求積運算 (二 ) 指令的尋址方式 1. 有效地址的概念 操作數(shù)的真實地址稱為有效地址 ,記做 EA,它是尋址方式和形式地址共同來決定的 . 2. 數(shù)據(jù)尋址和指令尋址 尋址方式是指確定本條指令的數(shù)據(jù)地址以及下一條將要執(zhí)行的指令的地址 ,與硬件結(jié)構(gòu)密切相關(guān) ,尋址方式分為指令尋址和數(shù)據(jù)尋址兩大類 指令尋址分為順序?qū)ぶ泛吞S尋址兩種 . 順序?qū)ぶ房梢酝ㄟ^程序計數(shù)器 PC 加 1 自動形成下一條指令的地址 ,跳躍尋址則通過轉(zhuǎn)移類指令實現(xiàn) ,是通過對 PC 的運算得到新的下一條指令的地址 . 3. 常見尋址方式 1)立即尋址 所需的操作數(shù)由指令的地址碼部分直接給出 ,就稱為立即數(shù) (或直接數(shù) )尋址方式 .這種方式的特點是取指時 ,操作碼和一個操作數(shù)同時被取出 ,不必再次訪問存儲器 ,提高了指令的執(zhí)行速度 .但是由于這一操作數(shù)是指令的一部分 ,不能修改 ,而一般情況下 ,指令所處理的數(shù)據(jù)都是在不斷變化的 (如上條指令的執(zhí)行結(jié)果作為下條指令的操作數(shù) ),故這種方式只能適用于操作數(shù)固定 的情況 .通常用于給某一寄存器或存儲器單元賦初值或提供一個常數(shù)等 .(圖中“ ”表示立即尋址的標記 ,A 的位數(shù)限制了這類指令所能表述的立即數(shù)的范圍 ) 2)直接尋址 指令的地址碼部分給出操作數(shù)在存儲器中的地址 . 3)隱含尋址 操作數(shù)的地址隱含在操作碼或者某個寄存器中 . 4)間接尋址 在尋址時 ,有時根據(jù)指令的地址碼所取出的內(nèi)容既不是操作數(shù) ,也不是下一條要執(zhí)行的指令 ,而是操作數(shù)的地址或指令的地址 ,這種方式稱為間接尋址或間址 . 5)寄存器尋址 計算機的中央處理器一般設(shè)置有一定數(shù)量的通用寄存器 ,用以存放 操作數(shù) ,操作數(shù)的地址或中間結(jié)果 .假如指令地址碼部分給出某一通用寄存器地址 ,而且所需的操作數(shù)就在這一寄存器中 ,則稱為寄存器尋址 .通用寄存器的數(shù)量一般在幾個至幾十個之間 ,比存儲單元少很多 ,因此地址碼短 ,而且從寄存器中存取數(shù)據(jù)比從存儲器中存取快得多 ,所以這種方式可以縮短指令長度 ,節(jié)省存儲空間 ,提高指令的執(zhí)行速度 ,在計算機中得到廣泛應用 . 6)寄存器間接尋址 EA = ( Ri ) 有效地址在寄存器中 寄存器中給出的是操作數(shù)的地址 ,因此還需要 訪問一次存儲器才能得到操作數(shù) . 7)基址尋址 在計算機中設(shè)置一個專用的基址寄存器 ,或由指令指定一個通用寄存器為基址寄存器 .操作數(shù)的地址由基址寄存器的內(nèi)容和指令的地址碼 A 相加得到 8)變址尋址 指令地址碼部分給出的地址 A 和指定的變址寄存器 X 的內(nèi)容通過加法器相加 ,所得的和作為地址從存儲器中讀出所需的操作數(shù) .這是幾乎所有計算機都采用的一種尋址方式 . 9)相對尋址 把程序計數(shù)器 PC 的內(nèi)容 (即當前執(zhí)行指令的地址 )與指令的地址碼部分給出的位移量 (disp)之和作為操作數(shù)的地址或轉(zhuǎn)移地址 ,稱為相對尋址 . 主要 用于轉(zhuǎn)移指令 ,執(zhí)行本條指令后 ,將轉(zhuǎn)移到 (PC)+ disp,(PC)為程序計數(shù)器的內(nèi)容 .相對尋址有兩個特點 : 1〉轉(zhuǎn)移地址不是固定的 ,它隨著 PC 值的變化而變化 ,并且總是與 PC 相差一個固定值 disp,因此無論程序裝人存儲器的任何地方 ,均能正確運行 ,對浮動程序很適用 . 2〉 位移量可正 ,可負 ,通常用補碼表示 .如果位移量為 n位 ,則這種方式的尋址范圍在 (PC)2n1 ~ (PC)+2n11之間 計算機的程序和數(shù)據(jù)一般是分開存放的 ,程序區(qū)在程序執(zhí)行過程中不允許修改 .在程序與數(shù)據(jù)分區(qū)存放的情況下 ,不用相對尋址方式來確定操作數(shù)地址 . 10)堆棧尋址 在一般計算機中 ,堆棧主要用來暫存中斷和子程序調(diào)用時現(xiàn)場數(shù)據(jù)及返回地址 ,用于訪問堆棧的指令只有壓入 (即進棧 )和彈出 (即退棧 )兩種 ,它們實際上是一種特殊的數(shù)據(jù)傳送指令 : 壓入指令 (PUSH)是把指定的操作數(shù)送入堆棧的棧頂 。 彈出指令 (POP)的操作剛好相反 ,是把棧頂?shù)臄?shù)據(jù)取出 ,送到指令所指定的目的地 . 一般的計算機中 ,堆棧從高地址向低地址擴展 ,即棧底的地址總是大于或等于棧頂?shù)牡刂?(也有少數(shù)計算機剛好相反 )當執(zhí)行壓入操作時 ,首先把堆棧指針 (SP)減量 (減量的多少取決于壓入數(shù)據(jù)的字節(jié)數(shù) ,若壓入一個字節(jié) ,則減 1。若壓入兩個字節(jié) ,則減 2,以此類推 ),然后把數(shù)據(jù)送人 SP所指定的單元 。當執(zhí)行彈出操作時 ,首先把 sp所指定的單元 (即棧頂 )的數(shù)據(jù)取出 ,然后根據(jù)數(shù)據(jù)的大小 (即所占的字節(jié)數(shù) )對 SP
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1