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

正文內(nèi)容

[理學(xué)]第5章指令系統(tǒng)(編輯修改稿)

2025-01-31 17:50 本頁面
 

【文章內(nèi)容簡介】 條指令中可以同時(shí)實(shí)現(xiàn)基址尋址與變址尋址,其有效地址為: 基址寄存器內(nèi)容 +變址寄存器內(nèi)容 +指令地址碼 A 指令類型 指令系統(tǒng)決定了計(jì)算機(jī)的基本功能,因此指令系統(tǒng)的設(shè)計(jì)是計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中的一個(gè)核心問題。它不僅與計(jì)算機(jī)的硬件結(jié)構(gòu)緊密相關(guān),而且直接影響到編寫操作系統(tǒng)和編寫編譯程序的難易程度。因此設(shè)計(jì)一個(gè)合理而又有效的指令系統(tǒng)是至關(guān)重要的,它對機(jī)器的性能價(jià)格比有很大影響。 一臺計(jì)算機(jī)最基本的、必不可少的指令是不多的,因?yàn)楹芏嘀噶疃伎梢杂眠@些最基本的指令組合來實(shí)現(xiàn)。 指令的分類及功能 1. 算術(shù)邏輯運(yùn)算指令 一般計(jì)算機(jī)都具有這類指令。這里講的算術(shù)運(yùn)算一般指的是定點(diǎn)數(shù)運(yùn)算,即相當(dāng)于高級語言中對整數(shù)(integer)的處理。通常根據(jù)算術(shù)運(yùn)算的結(jié)果置狀態(tài)位,一般有 Z(結(jié)果為 0)、 N(結(jié)果為負(fù) )、 V(結(jié)果溢出 )、 C(產(chǎn)生進(jìn)位或借位 )四個(gè)狀態(tài)位。當(dāng)滿足括弧內(nèi)所提出的條件時(shí),相應(yīng)位置成 “ 1”,否則為 “ 0”。 通常計(jì)算機(jī)具有對兩個(gè)數(shù)進(jìn)行與、或、非 (求反 )、異或 (按位加 )等操作的邏輯運(yùn)算指令。有些計(jì)算機(jī)還設(shè)置有位操作指令。 2. 移位操作指令 移位操作指令分為算術(shù)移位、邏輯移位和循環(huán)移位三種,可以將操作數(shù)左移或右移若干位,如圖 所示。 算術(shù)邏輯移位指令還有一個(gè)很重要的作用,就是用于實(shí)現(xiàn)簡單的乘除運(yùn)算。算術(shù)左移或右移 n位,分別實(shí)現(xiàn)對帶符號數(shù)據(jù)乘以 2n或整除以 2n的運(yùn)算;同樣,邏輯左移或右移 n位,分別實(shí)現(xiàn)對無符號數(shù)據(jù)乘以 2n或整除以 2n的運(yùn)算。移位指令的執(zhí)行時(shí)間比乘除運(yùn)算的執(zhí)行時(shí)間短。因此采用移位指令來實(shí)現(xiàn)上述乘法、除法運(yùn)算可取得較高的速度。 圖 移位操作 3. 浮點(diǎn)運(yùn)算指令 高級語言中的實(shí)數(shù) (real)經(jīng)常是先轉(zhuǎn)換成浮點(diǎn)數(shù)的形式而后再進(jìn)行處理。某些機(jī)器沒有設(shè)置浮點(diǎn)運(yùn)算指令而用子程序?qū)崿F(xiàn),其速度較低。因此主要用于科學(xué)計(jì)算的計(jì)算機(jī)應(yīng)該設(shè)置浮點(diǎn)運(yùn)算指令,一般能對單精度 (32位 )、雙精度 (64位 )數(shù)據(jù)進(jìn)行處理。 4. 十進(jìn)制運(yùn)算指令 在人機(jī)交互作用時(shí),輸入輸出的數(shù)據(jù)都是以十進(jìn)制形式表示的。在某些數(shù)據(jù)處理系統(tǒng)中輸入輸出的數(shù)據(jù)很多,但對數(shù)據(jù)本身的處理卻很簡單。在不具有十進(jìn)制運(yùn)算指令的計(jì)算機(jī)中,首先將十進(jìn)制數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制數(shù),再在機(jī)器內(nèi)運(yùn)算;爾后又轉(zhuǎn)換成十進(jìn)制數(shù)據(jù)輸出。因此,在輸入輸出數(shù)據(jù)頻繁的計(jì)算機(jī)系統(tǒng)中設(shè)置十進(jìn)制運(yùn)算指令能提高數(shù)據(jù)處理的速度。 5. 字符串處理指令 字符串處理指令是一種非數(shù)值處理指令,一般包括字符串傳送、字符串比較、字符串查詢、字符串轉(zhuǎn)換等指令。其中 “ 字符串傳送 ” 指的是數(shù)據(jù)塊從主存儲器的某區(qū)傳送到另一區(qū)域; “ 字符串比較 ” 是一個(gè)字符串與另一個(gè)字符串逐個(gè)字符進(jìn)行比較,以確定其是否相等; “ 字符串查詢 ” 是查找在字符串中是否含有某一指定的子串或字符; “ 字符串轉(zhuǎn)換 ”指的是從一種數(shù)據(jù)表達(dá)形式轉(zhuǎn)換成另一種表達(dá)形式。例如,從 ASCII碼轉(zhuǎn)換成 EBCDIC碼 (擴(kuò)充的 BCD碼 )。這種指令在需對大量字符串進(jìn)行各種處理的文字編輯和排版方面非常有用。 6. 數(shù)據(jù)傳送指令 這類指令用以實(shí)現(xiàn)寄存器與寄存器,寄存器與存儲器單元,存儲器單元與存儲器單元之間的數(shù)據(jù)傳送。對于存儲器來講,數(shù)據(jù)傳送包括了對數(shù)據(jù)的讀 (相當(dāng)于取數(shù)指令 )或?qū)?(相當(dāng)于存數(shù)指令 )操作。數(shù)據(jù)傳送時(shí),數(shù)據(jù)從源地址傳送到目的地址,而源地址中的數(shù)據(jù)保持不變,因此實(shí)際上是數(shù)據(jù)復(fù)制。 數(shù)據(jù)傳送指令一次可以傳送一個(gè)數(shù)據(jù)或一批數(shù)據(jù)。 有些機(jī)器設(shè)置了數(shù)據(jù)交換指令,完成源操作數(shù)與目的操作數(shù)互換,實(shí)現(xiàn)雙向數(shù)據(jù)傳送。 7. 轉(zhuǎn)移類指令 這類指令用以控制程序流的轉(zhuǎn)移。在大多數(shù)情況下,計(jì)算機(jī)是按順序方式執(zhí)行程序的,但是也經(jīng)常會遇到離開原來的順序轉(zhuǎn)移到另一段程序或循環(huán)執(zhí)行某段程序的情況。 按轉(zhuǎn)移的性質(zhì),轉(zhuǎn)移指令分為無條件轉(zhuǎn)移、條件轉(zhuǎn)移、過程調(diào)用與返回、陷阱 (trap)等幾種。 (1) 無條件轉(zhuǎn)移與條件轉(zhuǎn)移 無條件轉(zhuǎn)移指令不受任何條件約束,直接把程序轉(zhuǎn)移到指令所規(guī)定的目的地,在那里繼續(xù)執(zhí)行程序,在本書中以 jump表示無條件轉(zhuǎn)移指令。條件轉(zhuǎn)移指令則根據(jù)計(jì)算機(jī)處理結(jié)果來決定程序如何執(zhí)行。它先測試根據(jù)處理結(jié)果設(shè)置的條件碼,然后根據(jù)所測試的條件是否滿足來決定是否轉(zhuǎn)移,本書中用branch表示條件轉(zhuǎn)移指令。 條件碼的建立與轉(zhuǎn)移的判斷可以在一條指令中完成,也可以由二條指令完成。前者通常在轉(zhuǎn)移指令中先完成比較運(yùn)算,然后根據(jù)比較的結(jié)果來判斷轉(zhuǎn)移的條件是否成立,如條件為 “ 真 ” 則轉(zhuǎn)移,如條件為“ 假 ” 則順序執(zhí)行下一條指令。在第二種情況中,由轉(zhuǎn)移指令前面的指令來建立條件碼,轉(zhuǎn)移指令根據(jù)條件碼來判斷是否轉(zhuǎn)移,通常用算術(shù)指令建立的條件碼 N、 Z、 V、 C來控制程序的執(zhí)行方向,實(shí)現(xiàn)程序的分支。 有的計(jì)算機(jī)還設(shè)置有奇偶標(biāo)志位 P。 轉(zhuǎn)移指令的轉(zhuǎn)移地址一般采用相對尋址和直接尋址兩種尋址方式來確定。若采用相對尋址方式,則稱為相對轉(zhuǎn)移,轉(zhuǎn)移地址為當(dāng)前指令地址 (即當(dāng)前 PC的值 )和指令地址碼部分給出的位移量之和,即PC←(PC)+ 位移量;若采用直接尋址方式,則稱為絕對轉(zhuǎn)移,轉(zhuǎn)移地址由指令地址碼部分直接給出,即 PC← 目標(biāo)地址。 (2) 調(diào)用指令與返回指令 在編寫程序過程中,常常需要編寫一些經(jīng)常使用的、能夠獨(dú)立完成某一特定功能的程序段,在需要時(shí)能隨時(shí)調(diào)用,而不必多次重復(fù)編寫,以便節(jié)省存儲器空間和簡化程序設(shè)計(jì)。這種程序段就稱為子程序或過程。 除了用戶自己編寫的子程序以外,為了便于各種程序設(shè)計(jì),系統(tǒng)還提供了大量通用子程序。需要時(shí),可直接調(diào)用,而不必重新編寫。通常使用調(diào)用 (過程調(diào)用 /系統(tǒng)調(diào)用 /轉(zhuǎn)子程序 )指令來實(shí)現(xiàn)從一個(gè)程序轉(zhuǎn)移到另一個(gè)程序的操作,在本書中用 call表示調(diào)用指令。 call指令與 jump指令、 branch指令的主要差別是需要保留返回地址,也就是說當(dāng)執(zhí)行完被調(diào)用的程序后要回到原調(diào)用程序,繼續(xù)執(zhí)行 call指令的下一條指令。返回地址一般保留于堆棧中,隨同保留的還有一些狀態(tài)寄存器或通用寄存器內(nèi)容。保留寄存器內(nèi)容有兩種方法: ① 由調(diào)用程序保留從被調(diào)用程序返回后要用到的那部分寄存器內(nèi)容,其步驟是先由調(diào)用程序?qū)⒓拇嫫鲀?nèi)容保存在堆棧中,當(dāng)執(zhí)行完被調(diào)用程序,返回到調(diào)用程序后,再從堆棧中取出并恢復(fù)寄存器內(nèi)容。 ② 由被調(diào)用程序保留并最后恢復(fù)本程序要用到的那些寄存器內(nèi)容,也是保存在堆棧中。這兩種方法的目的都是為了保證調(diào)用程序繼續(xù)執(zhí)行時(shí)寄存器內(nèi)容的正確性。 調(diào)用 (call)與返回 (return)是一對配合使用的指令,返回指令從堆棧中取出返回地址,繼續(xù)執(zhí)行調(diào)用指令的下一條指令。 (3) 陷阱 (trap)與陷阱指令 在計(jì)算機(jī)運(yùn)行過程中,有時(shí)可能出現(xiàn)電源電壓不穩(wěn)、存儲器校驗(yàn)出錯、輸入輸出設(shè)備出現(xiàn)故障、用戶使用了未定義的指令或特權(quán)指令等種種意外情況,使得計(jì)算機(jī)不能正常工作。這時(shí)若不及時(shí)采取措施處理這些故障,將影響到整個(gè)系統(tǒng)的正常運(yùn)行。因此,一旦出現(xiàn)故障,計(jì)算機(jī)就發(fā)出陷阱信號,并暫停當(dāng)前程序的執(zhí)行 (稱為中斷 ),轉(zhuǎn)入故障處理程序進(jìn)行相應(yīng)的故障處理。 陷阱實(shí)際上是一種意外事故中斷,它中斷的主要目的不是為了請求 CPU的正常處理,而是通知 CPU已出現(xiàn)了故障,并根據(jù)故障情況,轉(zhuǎn)入相應(yīng)的故障處理程序。 在一般計(jì)算機(jī)中,陷阱指令作為隱含指令 (即指令系統(tǒng)中不提供的指令,它所完成的功能是隱含的 )不提供給用戶使用,只有在出現(xiàn)故障時(shí),才由 CPU自動產(chǎn)生并執(zhí)行。也有些計(jì)算機(jī)設(shè)置可供用戶使用的陷阱指令或 “ 訪管 ” 指令,利用它來實(shí)現(xiàn)系統(tǒng)調(diào)用和程序請求。 8. 堆棧及堆棧操作指令 堆棧 (stack)是由若干個(gè)連續(xù)存儲單元組成的先進(jìn)后出(first in last out,簡稱 FILO)存儲區(qū),第一個(gè)送入堆棧中的數(shù)據(jù)存放在棧底,最近送入堆棧中的數(shù)據(jù)存放在棧頂。棧底是固定不變的,而棧頂卻是隨著數(shù)據(jù)的入棧和出棧在不斷變化。為了表示棧頂?shù)奈恢?,有一個(gè)寄存器或存儲器單元用于指出棧頂?shù)牡刂罚@個(gè)寄存器或存儲器單元就稱為堆棧指針 (stack pointer,簡稱 SP)。任何堆棧操作只能在棧頂進(jìn)行。 在堆棧結(jié)構(gòu)的計(jì)算機(jī)中,堆棧是用來提供操作數(shù)和保存運(yùn)算結(jié)果的主要存儲區(qū),大多數(shù)指令 (包括運(yùn)算指令 )通過訪問堆棧來獲得所需的操作數(shù)或把操作結(jié)果存入堆棧中。而在一般計(jì)算機(jī)中,堆棧主要用來暫存中斷和子程序調(diào)用時(shí)現(xiàn)場數(shù)據(jù)及返回地址,用于訪問堆棧的指令只有壓入 (即進(jìn)棧 )和彈出 (即退棧 )兩種,它們實(shí)際上是一種特殊的數(shù)據(jù)傳送指令。壓入指令 (PUSH)是把指定的操作數(shù)送入堆棧的棧頂,而彈出指令 (POP)的操作剛好相反,是把棧頂?shù)臄?shù)據(jù)取出,送到指令所指定的目的地。 由于堆棧具有先進(jìn)后出的性質(zhì),因而在中斷、子程序調(diào)用過程中廣泛用于保存返回地址、狀態(tài)標(biāo)志及現(xiàn)場信息。例如,假設(shè)有一主程序 M和兩個(gè)子程序A, B,它們的調(diào)用關(guān)系是 M調(diào)用 A, A又調(diào)用 B,如圖 。 圖 子程序嵌套調(diào)用 9. 輸入輸出 (I/O)指令 計(jì)算機(jī)所處理的一切原始數(shù)據(jù)和所執(zhí)行的程序 (除了固化在 ROM中的以外 )均來自外部
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1