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

正文內(nèi)容

[理學(xué)]第5章指令系統(tǒng)-wenkub.com

2025-01-01 17:50 本頁面
   

【正文】 匯編語言與硬件的關(guān)系密切,用它編寫的程序緊湊,占內(nèi)存小,速度快,特別適合于編寫經(jīng)常與硬件打交道的系統(tǒng)軟件;而高級語言不涉及機器的硬件結(jié)構(gòu),通用性強,編寫程序容易,特別適合于編寫與硬件沒有直接關(guān)系的應(yīng)用軟件。用匯編語言編寫的程序,可作為高級語言的一個外部過程或函數(shù),利用堆棧來傳遞參數(shù)或參數(shù)的地址 (如何傳遞參數(shù)與高級語言的版本有關(guān) )。 高級語言在編寫程序方面比匯編語言優(yōu)越得多,但并不是完美無缺的,它也存在著如下兩個缺陷: (1) 用高級語言編寫的程序,必須翻譯成機器語言才能執(zhí)行,這一工作通常是由計算機執(zhí)行編譯程序(Compiler)來完成。 總之,用匯編語言編寫程序仍然有諸多不便。因此,匯編語言仍然是一種面向計算機硬件的語言,程序員使用它編寫程序必須十分熟悉計算機硬件結(jié)構(gòu)的配置、指令系統(tǒng)和尋址方式,這就對程序員有很高的要求。 用助記符來表示二進制碼指令序列的語言,稱為匯編語言 (assembly language),它基本上是與機器語言一一對應(yīng)的。因此,任何問題不管使用哪一種計算機語言 (匯編語言或某種高級語言 )描述,都必須通過翻譯程序轉(zhuǎn)換成相應(yīng)的機器語言后才能執(zhí)行。 (5) 大部分指令在一個或小于一個機器周期內(nèi)完成。 計算機執(zhí)行程序所需要的時間 P可用下式表示: P=I CPI T 其中 I是高級語言程序編譯后在機器上運行的指令數(shù),CPI為執(zhí)行每條指令所需的平均周期數(shù), T是每個機器周期的時間。 復(fù)雜的指令系統(tǒng)必然增加硬件實現(xiàn)的復(fù)雜性,這不僅增加了研制時間和成本以及設(shè)計失誤的可能性,而且由于復(fù)雜指令需要進行復(fù)雜的操作,與功能較簡單的指令同時存在于一個機器中,很難實現(xiàn)流水線操作 (參見第 6章 ),從而降低了機器的速度。 RISC的產(chǎn)生與發(fā)展 1. RISC的產(chǎn)生 1975年 IBM公司開始研究指令系統(tǒng)的合理性問題,IBM的 John cocke提出精簡指令系統(tǒng)的想法。 圖形 象素操作、壓縮 / 解壓操作等。 系統(tǒng) 操作系統(tǒng)調(diào)用、虛擬存儲器管理等。 ? 分類 ( 8088/8086) 取數(shù) MOV AX, TEMP 存數(shù) MOV TEMP, AX 傳送 MOV AX, CX 定點+,-, , 247。 在保護模式, 4GB主存對處理器都是有效的,因此可執(zhí)行專門設(shè)計的特權(quán)指令及其有關(guān)的功能,包括支持多任務(wù)操作、存儲管理和保護、虛擬存儲器以及片內(nèi)的數(shù)據(jù) cache和指令 cache。這樣大的尋址空間允許 Intel的微處理執(zhí)行多任務(wù),這在 8086是不可能實現(xiàn)的。 在以后發(fā)表的 Pentium, Pentium Ⅱ 以及 1999年 1月推出的 Pentium Ⅲ 微處理器中也都增加了一些指令,但仍保持軟件向上兼容的特點。 例如, Intel公司的 80 86微處理器系列是完全向上兼容的, Intel8086是 16位微處理器,它的指令由1~ 6個字節(jié)組成。 一臺新機器推出交付使用時,僅有少量系統(tǒng)軟件 (如操作系統(tǒng) )可提交用戶,大量軟件是不斷充實的,尤其是應(yīng)用程序,有相當(dāng)一部分是用戶在使用機器時不斷產(chǎn)生的,這就是所謂第三方提供的軟件。 (2) 高位相減:若上次運算后, C=0,減數(shù)取補碼;C=1,減數(shù)取反碼。 若減數(shù)為 0001 1110,則 (Y)補 =11100010, (XY)補 =X+(Y)補 =00101100+11100010=00001110。計算得: [Y]補 =11100110, [XY]補 =X+[Y]補 =00101100+11100110=00010010。 指令 操作說明 xK: ADD R2,R4 ;低位相加, R4←(R 2)+(R4), 并根據(jù)運算結(jié)果置進位位 C。 空操作指令除了將程序計數(shù)器增量外 (若空操作指令為字節(jié)指令則加 1, 4字節(jié)指令則加 4),不進行其他操作。需輸入輸出時,可通過系統(tǒng)調(diào)用,由操作系統(tǒng)來完成。 10. 特權(quán)指令 某些指令使用不當(dāng)會破壞系統(tǒng)或其他用戶信息,為了安全起見,這類指令只能用于操作系統(tǒng)或其他系統(tǒng)軟件,而不提供給用戶使用,稱為特權(quán)指令。 A是外部設(shè)備中的寄存器地址或設(shè)備碼,其長度一般為 8~16位,可以表示 256~ 64K個設(shè)備寄存器 (輸入數(shù)據(jù)寄存器 /輸出數(shù)據(jù)寄存器 /控制寄存器 )。例如,假設(shè)有一主程序 M和兩個子程序A, B,它們的調(diào)用關(guān)系是 M調(diào)用 A, A又調(diào)用 B,如圖 。 在堆棧結(jié)構(gòu)的計算機中,堆棧是用來提供操作數(shù)和保存運算結(jié)果的主要存儲區(qū),大多數(shù)指令 (包括運算指令 )通過訪問堆棧來獲得所需的操作數(shù)或把操作結(jié)果存入堆棧中。 8. 堆棧及堆棧操作指令 堆棧 (stack)是由若干個連續(xù)存儲單元組成的先進后出(first in last out,簡稱 FILO)存儲區(qū),第一個送入堆棧中的數(shù)據(jù)存放在棧底,最近送入堆棧中的數(shù)據(jù)存放在棧頂。因此,一旦出現(xiàn)故障,計算機就發(fā)出陷阱信號,并暫停當(dāng)前程序的執(zhí)行 (稱為中斷 ),轉(zhuǎn)入故障處理程序進行相應(yīng)的故障處理。這兩種方法的目的都是為了保證調(diào)用程序繼續(xù)執(zhí)行時寄存器內(nèi)容的正確性。 call指令與 jump指令、 branch指令的主要差別是需要保留返回地址,也就是說當(dāng)執(zhí)行完被調(diào)用的程序后要回到原調(diào)用程序,繼續(xù)執(zhí)行 call指令的下一條指令。這種程序段就稱為子程序或過程。 有的計算機還設(shè)置有奇偶標(biāo)志位 P。它先測試根據(jù)處理結(jié)果設(shè)置的條件碼,然后根據(jù)所測試的條件是否滿足來決定是否轉(zhuǎn)移,本書中用branch表示條件轉(zhuǎn)移指令。在大多數(shù)情況下,計算機是按順序方式執(zhí)行程序的,但是也經(jīng)常會遇到離開原來的順序轉(zhuǎn)移到另一段程序或循環(huán)執(zhí)行某段程序的情況。數(shù)據(jù)傳送時,數(shù)據(jù)從源地址傳送到目的地址,而源地址中的數(shù)據(jù)保持不變,因此實際上是數(shù)據(jù)復(fù)制。例如,從 ASCII碼轉(zhuǎn)換成 EBCDIC碼 (擴充的 BCD碼 )。在不具有十進制運算指令的計算機中,首先將十進制數(shù)據(jù)轉(zhuǎn)換成二進制數(shù),再在機器內(nèi)運算;爾后又轉(zhuǎn)換成十進制數(shù)據(jù)輸出。某些機器沒有設(shè)置浮點運算指令而用子程序?qū)崿F(xiàn),其速度較低。算術(shù)左移或右移 n位,分別實現(xiàn)對帶符號數(shù)據(jù)乘以 2n或整除以 2n的運算;同樣,邏輯左移或右移 n位,分別實現(xiàn)對無符號數(shù)據(jù)乘以 2n或整除以 2n的運算。 通常計算機具有對兩個數(shù)進行與、或、非 (求反 )、異或 (按位加 )等操作的邏輯運算指令。 指令的分類及功能 1. 算術(shù)邏輯運算指令 一般計算機都具有這類指令。 以上這些尋址方式,在計算機中可以組合使用,例如在一條指令中可以同時實現(xiàn)基址尋址與變址尋址,其有效地址為: 基址寄存器內(nèi)容 +變址寄存器內(nèi)容 +指令地址碼 A 指令類型 指令系統(tǒng)決定了計算機的基本功能,因此指令系統(tǒng)的設(shè)計是計算機系統(tǒng)設(shè)計中的一個核心問題。這種方式的特點是取指時,操作碼和一個操作數(shù)同時被取出,不必再次訪問存儲器,提高了指令的執(zhí)行速度。如果位移量為 n位,則這種方式的尋址范圍在 (PC)2(n1)到(PC)+2(n1)1之間。 圖 確定 Jump指令的轉(zhuǎn)移地址 6. 相對尋址 把程序計數(shù)器 PC的內(nèi)容 (即當(dāng)前執(zhí)行指令的地址 )與指令的地址碼部分給出的位移量 (disp)之和作為操作數(shù)的地址或轉(zhuǎn)移地址,稱為相對尋址。間接尋址有一次間址和多次間址兩種情況,大多數(shù)計算機只允許一次間址。 基址寄存器主要用于為程序或數(shù)據(jù)分配存儲區(qū),對多道程序或浮動程序很有用,實現(xiàn)從浮動程序的邏輯地址 (編寫程序時所使用的地址 )到存儲器的物理地址 (程序在存儲器中的實際地址,有時稱為有效地址 )的轉(zhuǎn)換。 2. 寄存器尋址 計算機的中央處理器一般設(shè)置有一定數(shù)量的通用寄存器,用以存放操作數(shù)、操作數(shù)的地址或中間結(jié)果。 尋址方式 尋址方式選用的依據(jù) ( 1)要與數(shù)據(jù)的表示方式相配合,對各種結(jié)構(gòu)的數(shù)據(jù)能方便地進行存取和處理; ( 2)要與指令系統(tǒng)相匹配,依據(jù)對機器性能要求的高低來考慮選擇; ( 3)還要考慮硬件實現(xiàn)的可能性與復(fù)雜程度,成本高低,設(shè)備與價格增加的合理性。圖 字數(shù)據(jù)的兩種字節(jié)次序: (1) 低字節(jié)為低地址,如圖 (a)所示; (2) 高字節(jié)為低地址,如圖 (b)所示。 圖 存儲器中數(shù)據(jù)的存放 (舉例 ) 目前計算機所用數(shù)據(jù)字長一般為 32位。在同一臺計算機中可能既有短格式指令又有長格式指令,但通常是把最常用的指令 (如算術(shù)邏輯運算指令、數(shù)據(jù)傳送指令 )設(shè)計成短格式指令,以便節(jié)省存儲空間和提高指令的執(zhí)行速度。各指令的長度不是固定的,但也不是任意的。 ? 變長指令字結(jié)構(gòu) :各種指令字長度隨指令功能而異 。 它們之間關(guān)系如上:其中 L為指令字長度, N為機器字長度 ? 使用多字長指令 , 目的在于提供足夠的地址位來解決訪問內(nèi)存任何單元的尋址問題 。 表 指令出現(xiàn)概率與操作碼長度的選擇 指令 概率 Pi(%) 操作碼 操作碼長度 (位 ) I1 45 00
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1