重慶大學(xué)-計算機硬件基礎(chǔ)課件(完結(jié)版).ppt_第1頁
重慶大學(xué)-計算機硬件基礎(chǔ)課件(完結(jié)版).ppt_第2頁
重慶大學(xué)-計算機硬件基礎(chǔ)課件(完結(jié)版).ppt_第3頁
重慶大學(xué)-計算機硬件基礎(chǔ)課件(完結(jié)版).ppt_第4頁
重慶大學(xué)-計算機硬件基礎(chǔ)課件(完結(jié)版).ppt_第5頁
已閱讀5頁,還剩302頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、計算機硬件技術(shù)基礎(chǔ),學(xué)時數(shù)安排,講課: 54學(xué)時,實驗:,36學(xué)時,課件制作: 黃 勤 李 楠 甘思源 聯(lián)系電話: 65106554,教 材:,計算機硬件技術(shù)基礎(chǔ),楊天怡主編,實驗教材:,計算機硬件技術(shù)實驗教程,黃 勤 主編,主要內(nèi)容,1。微型計算機基礎(chǔ),2。Intel系列微處理器,3。80486指令系統(tǒng),4。匯編語言程序設(shè)計,5。存儲器及存儲管理,6。輸入輸出方式與接口芯片 中斷及中斷控制器8259A 可編程定時/計數(shù)器8254 并行I/O接口芯片8255A,7。外設(shè)備接口技術(shù) 鍵盤接口、CRT接口、其它開關(guān)接口,8??偩€(概述、ISA),教學(xué)要求,1。CPU工作方式、結(jié)構(gòu)、時序基本概念 2

2、。486工作方式、內(nèi)部結(jié)構(gòu) 3。CPU引腳:主要是與總線有關(guān)的引腳 4。指令系統(tǒng):8086全部及80486常用指令 5。程序結(jié)構(gòu):順序、循環(huán)、分支、子程序 6。DOS調(diào)用:1、2、9、A號 35H、25H號了解 7。存儲器分類及管理方法 8。中斷:概念、中斷程序結(jié)構(gòu)、8259A中斷管理芯片 9。DMA:了解 10。8254、8255A 11。串口,了解基本概念 12。鍵盤、LED主要是上機用,考試要求,1??荚嚳蓭Ы滩?、實驗指導(dǎo)書、實驗報告、預(yù)習(xí)報告、 筆記,但不得有復(fù)印件 2。考試分上機考試(30)、筆試(70),教學(xué)管理,1。3次遲到為一次曠課,曠課超過3次取消考試資格。 2。遲到5分鐘以

3、上以曠課計。 3??梢詴嫔暾堊詫W(xué),經(jīng)教務(wù)批準(zhǔn)后可免考勤,保留考試資格4。每次實驗前撰寫預(yù)習(xí)報告,連同上機簽到冊作為指導(dǎo)老師實驗考勤依據(jù)。 5。每次實驗后撰寫實驗報告,報告冊在教材科購買。,第一章 微型計算機基礎(chǔ),第一節(jié) 微型計算機的組成,第二節(jié) 微型計算機的硬件結(jié)構(gòu),第三節(jié) 微型計算機中的先進計算機技術(shù),第四節(jié)微型計算機的主要性能指標(biāo)及典型 微型計算機,第一節(jié) 微型計算機的組成,二、微型計算機的硬件組成,一、微型計算機系統(tǒng)的組成,硬件和軟件兩大部分組成,1.存儲器,存儲器是計算機中存儲程序和數(shù)據(jù)的部件。計算機的存儲器分為兩大部分,一部分為內(nèi)部存儲器或主存儲器,簡稱內(nèi)存或主存;另一部分為外部存

4、儲器或輔助存儲器,簡稱外存或輔存。,存儲容量,描述存儲器存儲二進制信息量多少的指標(biāo)。存儲二進制信息的基本單位是位(bit,b)。一般把8個二進制位組成的通用基本單元叫作字節(jié)(Byte,B)。微型計算機中通常以字節(jié)為單位表示存儲容量。,1024B為1KB 1024KB為1MB 1024MB為1GB 1024GB為1TB,存儲速度,描述存儲器工作快慢程度的指標(biāo),它指信息存入存儲器和從存儲器中取出所需要的時間。,存儲的類型,半導(dǎo)體存儲器,磁記錄存儲器,光盤存儲器,2.微處理器,微處理器是微型計算機的運算和控制指揮中心。不同的微處理器,其性能有所不同,但基本組成是相同的,由運算器、控制器和寄存器陣列三

5、個主要部件組成。, 運算器,執(zhí)行算術(shù)運算和邏輯運算的部件,由累加器(Accumulator,A)、暫存器(Temporary,TMP)、算術(shù)邏輯單元(Arithmatic Logic Unit,ALU)、標(biāo)志寄存器(Flag Registers,F(xiàn))和一些邏輯電路組成。,累加器,算術(shù)邏輯單元,標(biāo)志寄存器, 控制器,控制器是指令執(zhí)行部件,包括取指令、分析指令(指令譯碼)和執(zhí)行指令,由指令寄存器(Instruction Register,IR)、指令譯碼器(Instruction Decoder,ID)和定時控制電路(Timing and Control)等組成。, 寄存器陣列,寄存器陣列主要包含

6、兩類寄存器,一是通用寄存器,供用戶使用;二是一些用途固定的專用寄存器,如程序計數(shù)器、堆棧指示器。,程序計數(shù)器PC,用于存放下一條要執(zhí)行的指令在存儲器中存放的地址。,堆棧和堆棧指示器SP,堆棧是一塊設(shè)在內(nèi)存中按先進后出(First In Last Out,F(xiàn)ILO)原則組織的存儲區(qū)域,用于存放數(shù)據(jù)。數(shù)據(jù)存入棧區(qū)稱為壓入(PUSH),從棧區(qū)中取出數(shù)據(jù)稱為彈出(POP)。,三、微型計算機的軟件組成,3.輸入輸出設(shè)備,輸入設(shè)備,輸出設(shè)備,計算機的軟件包含系統(tǒng)軟件和應(yīng)用軟件兩部分。系統(tǒng)軟件是使用和管理計算機的軟件,如操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡(luò)管理系統(tǒng)以及各種語言處理程序、系統(tǒng)維護程序等。應(yīng)用軟件則是

7、用戶根據(jù)自己的需要,為解決某一實際問題而編制的程序,如企業(yè)的財務(wù)管理、人事管理,設(shè)備狀態(tài)監(jiān)測的數(shù)據(jù)采集與處理等。,第二節(jié) 微型計算機的硬件結(jié)構(gòu),一、硬件結(jié)構(gòu),微型計算機在硬件上普遍采用總線結(jié)構(gòu),總線結(jié)構(gòu)使系統(tǒng)構(gòu)成方便,并具有很好的可維護性和可擴展性。,二、總線,所謂總線,就是一組用于信息公共傳輸?shù)男盘柧€,連在總線上的所有部件均能使用的公共線路,但使用必須是分時的。按傳輸信息方向,總線分為只能單方向傳輸信息的單向總線和可以雙向傳送信息的雙向總線。按傳輸信息類別,總線分為傳輸數(shù)據(jù)信息的數(shù)據(jù)總線(Data Bus ,DB)、傳輸?shù)刂沸畔⒌牡刂房偩€(Address Bus ,AB )和傳輸控制信息的控

8、制總線(Control Bus, CB)。,三、 數(shù)據(jù)總線、地址總線、控制總線,因為數(shù)據(jù)傳輸是雙向的,故DB是雙向總線。DB的位數(shù)越寬,一次數(shù)據(jù)傳輸?shù)男畔⒘烤驮酱螅?位DB一次只能傳輸1個字節(jié)的數(shù)據(jù)信息,而64位DB則一次可以傳輸8個字節(jié)的數(shù)據(jù)信息。,數(shù)據(jù)總線DB,因為地址信息總是由微處理器發(fā)出,尋址存儲器或外設(shè),故AB為單向總線。AB的位數(shù)越寬,尋址的空間就越大。8位微處理器的地址總線為16位,即有AB15AB0 16條地址線,尋址范圍為216=64KB;目前生產(chǎn)的微處理器尋址范圍已達到64GB。,CB包括微處理器向存儲器發(fā)送的讀選通信號RD、寫選通信號WR,以及外設(shè)向微處理器發(fā)送的中斷請求

9、信號NMI、INTR等??刂瓶偩€的各位作用不同,且一般都是單向的。,地址總線AB,控制總線CB,根據(jù)總線的組織方式,可把微型計算機的硬件結(jié)構(gòu)分為單總線、面向微處理器雙總線和面向存儲器雙總線結(jié)構(gòu)。,單總線結(jié)構(gòu)的微型計算機,面向微處理器的雙總線結(jié)構(gòu)微型計算機,面向存儲器的雙總線結(jié)構(gòu)微型計算機,第三節(jié) 微型計算機中的先進計算機技術(shù),一、中斷技術(shù),計算機暫停(或稱為掛起)正在執(zhí)行的程序轉(zhuǎn)去處理隨機事件,隨機事件處理完畢后,再恢復(fù)執(zhí)行原來的程序的過程稱為中斷。,二、流水線技術(shù),流水線(Pipeline)技術(shù)是一種將一條指令的執(zhí)行過程分解為多個步驟,并讓幾條指令的不同步驟操作在時間上重疊,從而實現(xiàn)幾條指令

10、并行處理,提高程序運行速度的技術(shù)。每一個步驟均由一個獨立的電路來完成,若干個完成不同操作步驟的電路組成了指令流水線。,三、亂序執(zhí)行技術(shù),所謂亂序執(zhí)行(Out of Order Execution)技術(shù)就是允許指令按照不同于程序中指定的順序發(fā)送給執(zhí)行部件,從而加速程序執(zhí)行過程的一種最新技術(shù)。它本質(zhì)上是按數(shù)據(jù)流驅(qū)動原理工作的(傳統(tǒng)的計算機都是按指令流驅(qū)動原理工作的),根據(jù)操作數(shù)是否準(zhǔn)備好來決定一條指令是否立即執(zhí)行。不能立即執(zhí)行的指令先擱置一邊,而把能立即執(zhí)行的后續(xù)指令提前執(zhí)行。,四、推測執(zhí)行技術(shù),推測執(zhí)行技術(shù)(或稱為預(yù)測執(zhí)行技術(shù))是為了充分發(fā)揮流水線與并行執(zhí)行技術(shù)和分支超順序執(zhí)行技術(shù)而采取的一種先

11、進計算機技術(shù)。,五、高速緩沖存儲器技術(shù),在32位微機中,為了加快處理速度,在CPU與主存儲器之間增設(shè)了一級或兩級高速小容量存儲器,稱之為高速緩沖存儲器(Cache)。高速緩沖存儲器的存取速度比主存要快一個數(shù)量級,大體與CPU的速度相當(dāng)。CPU在取指令或取操作數(shù)時,首先看其是否在高速緩沖存儲器中,不在時才訪問主存儲器。指令或操作數(shù)在高速緩沖存儲器中時,稱為“命中”,反之稱為“未命中”。,六、虛擬存儲器技術(shù),虛擬存儲器技術(shù)是一種通過硬件和軟件結(jié)合擴大用戶可用存儲空間的技術(shù)。它在內(nèi)存儲器和外存儲器(軟盤、硬盤或光盤)之間增加一些的硬件和軟件,使兩者形成一個有機整體。,第四節(jié)微型計算機的主要性能指標(biāo)及

12、典型 微型計算機,一、主要性能指標(biāo),字長,存儲容量,運算速度,外設(shè)擴展能力,軟件配置,指計算機內(nèi)部一次可以處理的二進制數(shù)碼的位數(shù)。,計算機的運算速度一般用每秒鐘所能執(zhí)行的指令條數(shù)來表示。由于不同類型的指令的執(zhí)行時間不同,因而運算速度的計算方法也不同,,指微型計算機配接各種外部設(shè)備的可能性、靈活性和適應(yīng)性。,軟件是計算機的重要組成部分,它配置是否齊全,直接關(guān)系到計算機性能的好壞和效率的高低。,二、PC系列微機簡介 (教材P15P17 自學(xué)),三、PC486硬件特點 (教材P17P21 自學(xué)),四、PC Pentium的硬件特點 (教材P21P22 自學(xué)),第二章 Intel系列微處理器,第一節(jié)

13、Intel系列微處理器概述,第二節(jié) 80486微處理器的體系結(jié)構(gòu),第三節(jié) Pentium微處理器的體系結(jié)構(gòu),一、80868088 微處理器,8086 是標(biāo)準(zhǔn)16位微處理器,內(nèi)外數(shù)據(jù)總線都為16位;8088 是準(zhǔn)16位微處理器,內(nèi)數(shù)據(jù)總線為16位,外數(shù)據(jù)總線為8位。80868088 除了外數(shù)據(jù)位數(shù)及與此相關(guān)的部分邏輯稍有不同外,內(nèi)部結(jié)構(gòu)和基本性能相同,指令系統(tǒng)完全兼容。,在80868088的設(shè)計中,引人了兩個重要的概念: 指令流水線 存儲器分段 這兩個概念在以后升級的INTEL系列微處理器中一直被沿用和發(fā)展。正是這兩個概念的引入,使80868088 與原來的8位微處理器相比,在運行速度、處理能力

14、和對存儲空間訪問等性能方面有很大提高。,第一節(jié) Intel系列微處理器概述,8086/8088內(nèi)部結(jié)構(gòu)示意圖,總線接口單元BIU由段寄存器(CS、DS、SS、ES)、指令指針寄存器(IP)、內(nèi)部暫存器、指令隊列、地址加法器及總線控制電路組成。它的主要作用是負責(zé)執(zhí)行所有的“外部總線”操作,即當(dāng)EU從指令隊列中取走指令時,BIU即從內(nèi)存中取出后續(xù)的指令代碼放入隊列中;當(dāng)EU需要數(shù)據(jù)時,BIU根據(jù)EU輸出的地址,從指定的內(nèi)存單元或外設(shè)中取出數(shù)據(jù)供EU使用;當(dāng)運算結(jié)束時,BIU將運算結(jié)果送給指定的內(nèi)存單元或外設(shè)。,指令隊列主要使8086/8088的EU和BIU并行工作,取指令操作、分析指令操作重疊進行

15、,從而形成了兩級指令流水線結(jié)構(gòu),減少了CPU為取指令而必須等待的時間,提高了CPU的利用率,加快了整機運行速度,也降低了對存儲器存取速度的要求。,執(zhí)行單元EU 由通用寄存器、運算數(shù)據(jù)寄存器、算術(shù)邏輯單元(ALU)及EU控制電路組成。它的主要作用是分析和執(zhí)行指令,即EU控制電路從指令隊列取出指令代碼,經(jīng)譯碼,發(fā)出相應(yīng)的控制信號;數(shù)據(jù)在ALU中進行運算;運算過程及結(jié)果的某些特征保留在標(biāo)志寄存器(EFLAGS)中。,段寄存器為8086/8088采用存儲器分段管理提供了主要的硬件支持。8086/8088可尋址的存儲器空間為1MB。通過分段管理,把1MB的物理存儲空間分成若干邏輯段,每段最大為64KB。

16、段的起始單元地址叫段基址。 存儲器的分段方式不是唯一的,各段之間可以連續(xù)、分離、部分重疊和完全重疊。這主要取決于對各個段寄存器的預(yù)置內(nèi)容。一個具體的存儲單元的物理地址,可以屬于一個邏輯段,也可以同屬于幾個邏輯段。 8086/8088的4個當(dāng)前段分別稱為:代碼段、數(shù)據(jù)段、堆棧段、附加段,采用存儲器分段管理后,存儲器地址有物理地址和邏輯地址之分。CPU訪問存儲器時,地址總線AB上送出的是物理地址。,編程時則采用邏輯地址,邏輯地址有段基址和段內(nèi)偏移地址兩部分組成,兩者都是16位。,由16位邏輯地址變換為20位物理地址的關(guān)系如下: 物理地址=段基址*16+段內(nèi)偏移,物理地址的生成是在BIU的地址加法器

17、中完成的。,物理地址生成示意圖,二、80286微處理器,80286是一種增強微處理器型標(biāo)準(zhǔn)16位微處理器。與8086/8088相比,結(jié)構(gòu)上的改進與性能上的提高主要體現(xiàn)在以下幾個方面:, 內(nèi)部有執(zhí)行單元(EU)、總線單元(BU)、指令單元(IU)和地址單元(AU)4個獨立的部分并行操作,可實現(xiàn)4級流水線作業(yè),使數(shù)據(jù)吞吐率大大提高。, 地址總線與數(shù)據(jù)總線完全分開使用。, 存儲空間有兩種工作方式:實地址方式和保護虛擬地址方式(保護方式)。實地址方式有1MB的空間;保護方式有16MB的空間。, 在保護方式下,4個段寄存器裝入的不再是段基址,而是指向段描述符表中某個段描述符的索引值,稱為段選擇符。,總之

18、,80286主要是增強了多用戶、多任務(wù)系統(tǒng)所必須的任務(wù)轉(zhuǎn)換功能、虛擬存儲器管理功能和多種保護功能,不僅運算速度大為提高,而且支持多用戶、多任務(wù)操作。,三、80386/80486微處理器,80386/80486是針對多用戶和多任務(wù)的應(yīng)用而推出的32位微處理器,與80286相比,它在結(jié)構(gòu)和性能上的主要特點如下:, 內(nèi)部寄存器數(shù)量明顯增加,它具有全32位數(shù)據(jù)處理能力,還可以進行64位的數(shù)據(jù)運算。,片內(nèi)存儲管理部件可實現(xiàn)段頁式存儲管理,比80286可提供更大的虛擬存儲空間和物理存儲空間。, 比80286新增了一種保護模式下的工作方式,即虛擬8086方式。, 80486增加到6級指令流水線。, 提供了3

19、2位外部總線接口,最大數(shù)據(jù)傳輸速率顯著提高。, 運算速度大大加快。,四、Pentium 微處理器,Pentium 是一種高性能的64位微處理器,它對80486作了下列重大的改進:, 采用超標(biāo)量體系結(jié)構(gòu),內(nèi)含兩條指令流水線。, 內(nèi)置的浮點運算部件采用超流水線技術(shù)。, 增加了分支指令預(yù)測。, 內(nèi)置了指令和數(shù)據(jù)兩個獨立的超流水線技術(shù)。, 采用64位外部數(shù)據(jù)總線。, 引入了大型計算機中采用的內(nèi)部錯誤檢測、功能冗余校驗和錯誤報告等自診斷功能。, 進行了更多的可測性設(shè)計。, 提供了獨特的性能監(jiān)察功能,以利于軟、硬件產(chǎn)品的優(yōu)化和升級。, 提供了靈活的存儲器頁面管理功能。,第二節(jié) 80486微處理器的體系結(jié)構(gòu)

20、,一、80486的體系結(jié)構(gòu)特點,80486是32位高性能處理器,它以提高性能和面向多處理器系統(tǒng)結(jié)構(gòu)為主要目標(biāo),它具有如下的特點:, 80486采用的是單倍的時鐘頻率,即在80486CPU的CLK端輸入的外部時鐘頻率就是其內(nèi)部處理器的工作時鐘頻率。, 內(nèi)部包含有8K字節(jié)的指令/數(shù)據(jù)合用型高速緩存器。, 內(nèi)部包含了相當(dāng)于增強型80387功能的浮點協(xié)處理器。, 對使用頻率較高的基本指令,由原來的微代碼控制改為硬件邏輯直接控制,并在指令執(zhí)行單元采用了RISC技術(shù)和流水線技術(shù)。, 采用了突發(fā)式總線傳輸方式。, 內(nèi)部數(shù)據(jù)總線的寬度有32位、64位等多種,并分別用于不同單元之間的數(shù)據(jù)通路, 對某些內(nèi)部寄存器

21、中部分位的內(nèi)容進行了變動和增加。, 面向多處理器結(jié)構(gòu),在總線接口部件上增加了總線監(jiān)視功能,增加了支持多機操作的指令。,二、80486的內(nèi)部結(jié)構(gòu)與內(nèi)部寄存器,1、內(nèi)部結(jié)構(gòu),總線接口單元,主要用于外部地址、數(shù)據(jù)和控制總線管理,完成預(yù)取指令、讀/寫數(shù)據(jù)等總線操作。,指令預(yù)取單元,內(nèi)含一個32字節(jié)的指令預(yù)取隊列,當(dāng)指令預(yù)取隊列不滿且總線空閑時,指令預(yù)取單元通過總線接口單元從存儲器讀取指令放到隊列中。,指令預(yù)取單元平均可以預(yù)取10條指令。,指令譯碼單元,從指令預(yù)取隊列中讀取指令,進行預(yù)譯碼后將其送入已譯碼的指令隊列等待執(zhí)行。如果預(yù)譯碼時發(fā)現(xiàn)是轉(zhuǎn)移或調(diào)用指令,可提前通知總線接口部件去新的目標(biāo)地址取指令,以

22、刷新指令預(yù)取隊列。,指令執(zhí)行單元,完成各種算術(shù)邏輯運算和變址地址生成。在控制單元中,大多數(shù)指令采用微程序控制結(jié)構(gòu)執(zhí)行,常用基本指令采用硬件邏輯控制執(zhí)行。,段管理單元,用于存儲器分段管理,將邏輯地址變換為32位線性地址。,頁管理單元,用于進行存儲器分頁管理,將線性地址變換為32位物理地址。,高速緩存單元,浮點運算單元,用于加速指令/數(shù)據(jù)的訪問過程。,相當(dāng)于一個增強型浮點協(xié)處理器80387,專門用作浮點運算,可與ALU的整數(shù)運算并行進行。,80486的流水線工作示意圖,2.內(nèi)部寄存器,1)基本寄存器, 通用寄存器, 指令指針寄存器 (EIP),有8個32位的EAX、EBX、ECX、EDX、ESI、

23、EDI、EBP、ESP;它們的低16位可以單獨訪問被命名為: AX、BX、CX、DX、SI、DI、BP、SP。其中AX、BX、CX、DX還可以分別分成兩個8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL。,EIP用于保存下一條待預(yù)取指令相對于代碼段基址的偏移量。它的低16位可以單獨訪問,稱之為IP, 標(biāo)志寄存器 (EFLAGS):,32位標(biāo)志寄存器 (EFLAGS)中包含三種標(biāo)志:狀態(tài)標(biāo)志(S)、控制標(biāo)志(C)和系統(tǒng)標(biāo)志(X)。, 段寄存器:,狀態(tài)標(biāo)志(S):反映指令執(zhí)行過程及結(jié)果的狀態(tài)。,控制標(biāo)志(C):它僅含一個標(biāo)志DF,用于控制串操作指令的地址改變方向。,系統(tǒng)標(biāo)志(X):它用于

24、控制I/O、屏蔽中斷、調(diào)試、任務(wù)轉(zhuǎn)換和控制保護方式與虛擬8086方式間的轉(zhuǎn)換。,80486有6個段寄存器(CS、SS、DS、ES、FS、GS),用于決定程序使用存儲器區(qū)域塊。其中CS指明當(dāng)前的代碼段;SS指明當(dāng)前的堆棧段;DS、ES、FS和GS指明當(dāng)前的4個數(shù)據(jù)段。,在保護方式下,80486段的長度可以在1M字節(jié)到4G字節(jié)之間變化;而在實地址方式下,段的長度最大為64KB。,基本寄存器示意圖,2)系統(tǒng)級寄存器,系統(tǒng)級寄存器包括4個控制寄存器和4個系統(tǒng)地址寄存器。這些寄存器只能由在特權(quán)級0上運行的程序訪問。,4個控制寄存器的作用是存放全局特性的機器狀態(tài),控制片內(nèi)Cache、FPU和分段、分頁單元

25、的工作。各個控制寄存器都是32位。, 控制寄存器, 系統(tǒng)地址寄存器,系統(tǒng)地址寄存器只在保護方式下使用,所以又叫保護方式寄存器。80486用4個寄存器把在保護方式下常用的數(shù)據(jù)基地址、界限和其他屬性保存起來,以確保其快速性。,全局描述符表寄存器(GDTR)和局部描述符表寄存器(LDTR)分別用來存放前述的GDT和LDT的32位線性基地址等內(nèi)容。,中斷描述符表寄存器(IDTR)用來存放中斷描述符表的基址和界限。,任務(wù)寄存器TR用來存放任務(wù)狀態(tài)段(TTS)的基址、界限和其它屬性。, 調(diào)試和測試寄存器,80486提供了8個32位的可編程寄存器來支持調(diào)試功能。它還定義了5個測試寄存器,測試寄存器實際上并不

26、是80486體系結(jié)構(gòu)的標(biāo)準(zhǔn)部分,只是為了增強系統(tǒng)的可測性而引入的附加硬件。, 浮點寄存器,13個浮點寄存器,8個80位浮點數(shù)據(jù)寄存器用作固定寄存器組或硬件堆棧, 1個16位標(biāo)記字寄存器用來標(biāo)記每個數(shù)據(jù)寄存器的內(nèi)容,1個16位控制寄存器用于提供FPU的若干處理選擇項,1個16位狀態(tài)寄存器用于反映FPU的總狀態(tài),2個48位的指令、數(shù)據(jù)指針寄存器的作用是為用戶編寫錯誤處理程序提供指令、數(shù)據(jù)指針。,80486的FPU中包含有:,三、80486的三種工作方式及相互轉(zhuǎn)換,(1)實地址方式:,它的工作原理與8086基本相同,主要區(qū)別是80486能借助操作數(shù)長度前綴,處理32位數(shù)據(jù),且增加了兩個數(shù)據(jù)段寄存器F

27、S和GS,提高了運行速度。,(2)保護虛地址方式:,(3)虛擬8086方式:,它引入了虛擬存儲器的概念。CPU可訪問的物理存儲空間為4GB,程序可用的虛擬地址空間為64TB。段的長度在啟動頁功能時是4GB,不啟動頁功能時是1MB??芍С侄嘤脩艉蛦斡脩舻亩嗳蝿?wù)操作,并對各任務(wù)提供了多方面的保護機制。,它是一種既有保護功能又能執(zhí)行8086代碼的工作方式,可以說是保護方式的一種子方式。工作原理與保護虛擬地址方式下相同,但是程序指定的邏輯地址解釋與8086相同,即可以和實地址方式下一樣執(zhí)行8086的應(yīng)用程序。,80486的三種工作方式和相互轉(zhuǎn)換示意圖,四、80486的外部引腳信號,第三節(jié) Pentiu

28、m 微處理器的體系結(jié)構(gòu),一、Pentium 微處理器的內(nèi)部結(jié)構(gòu),Pentium 微處理器的內(nèi)部結(jié)構(gòu),Pentium微處理器是Intel公司繼80486之后推出的64位高性能微處理器,它具有超標(biāo)量體系結(jié)構(gòu)、分支預(yù)測先進技術(shù)的采用,分開的指令、數(shù)據(jù)高速緩沖存儲器,以及128位、256位內(nèi)部數(shù)據(jù)總線,64位可成組傳送的外部總線等特點。,Pentium微處理器由總線部件、代碼Cache、指令Cache、預(yù)取緩沖存儲器、指令譯碼部件、整數(shù)運算部件、浮點運算部件等功能部件組成 。,二、Pentium 微處理器的整數(shù)流水線,Pentium微處理器的整數(shù)流水線與80486微處理器的非常類似,其流水線操作由預(yù)取

29、PF、首次譯碼DI、二次譯碼DI、執(zhí)行EX和寫回WB共5個操作步驟組成。,它在流水線中增加了一些輔助性硬件以加速指令的執(zhí)行。,(1)超標(biāo)量執(zhí)行,Pentium微處理器配置的超標(biāo)量執(zhí)行機構(gòu)允許兩條指令以并行方式執(zhí)行。采用的技術(shù)是把生成地址的硬件和算術(shù)運算邏輯運算部件配置成兩個各自獨立的整數(shù)流水線,一個叫U流水線,另一個叫V流水線。,Pentium微處理器的片內(nèi)Cache是分離式的Cache,即指令代碼Cache和數(shù)據(jù)Cache是各自獨立的片內(nèi)Cache。當(dāng)執(zhí)行部件對存儲器進行訪問時,由指令Cache和數(shù)據(jù)Cache分別提供指令代碼信息和數(shù)據(jù)信息??偩€接口部件內(nèi)包括了各自獨立的32位地址總線和64

30、位數(shù)據(jù)總線。Pentium微處理器的預(yù)取緩沖部件內(nèi)包括了指令預(yù)取和指令譯碼兩個子功能部件。,Pentium微處理器采用了預(yù)測新技術(shù)。為了支持這項新技術(shù),芯片內(nèi)裝備有兩個預(yù)取緩沖存儲器,一個是以線性方式來預(yù)取代碼,另一個則根據(jù)轉(zhuǎn)移目標(biāo)緩沖存儲器BTB預(yù)取代碼。,(2)轉(zhuǎn)移預(yù)測判斷,三、Pentium 微處理器的浮點流水線,(1)浮點流水線操作,(2)浮點流水線微體系結(jié)構(gòu),Pentium浮點流水線由預(yù)取PF、首次譯碼D1、二次譯碼D2、取操作數(shù)、首次執(zhí)行X1、二次執(zhí)行X2、寫浮點數(shù)WF和出錯報告ER共8個操作步驟組成。其中預(yù)取PF和首次譯碼Dl這兩個操作步驟與整數(shù)流水線中的前兩個操作步驟公用同一硬

31、件資源。,對“基本”浮點指令來說,也允許單周期通過,也就是說能以每個時鐘執(zhí)行一條指令的速率執(zhí)行。,Pentium微處理器的浮點流水線由浮點接口、寄存器組及控制部件FIRC、浮點指數(shù)功能部件FEXP、浮點乘法部件FMUL、浮點加法部件FADD、浮點除法部件FDIV以及浮點舍入處理部件PFRND共7個部件組成。,四、Pentium 微處理器的片內(nèi)Cache,Pentium采用了代碼和數(shù)據(jù)各自獨立的分離式Cache 。每一種Cache的規(guī)模大小均為8K字節(jié),采用的是二路相聯(lián)的映像技術(shù),每個Cache行大小為32個字節(jié)。在每一個Cache內(nèi),都裝備有一個專用的轉(zhuǎn)換旁視緩沖存儲器TLB,用來快速地將線性

32、地址轉(zhuǎn)換成物理地址。,它遵循MESI協(xié)議,既可以將數(shù)據(jù)Cache根據(jù)寫回方案進行配置,也可以將數(shù)據(jù)Cache根據(jù)逐行寫貫穿方案進行配置。數(shù)據(jù)Cache的標(biāo)記是三端口式的結(jié)構(gòu),以支持兩個數(shù)據(jù)的傳送和所訪問的周期是在同一時鐘周期之內(nèi) 。,指令代碼Cache是一個固有的寫保護Cache,指令代碼Cache的標(biāo)記是三端口式的結(jié)構(gòu),以便對Cache操作實施監(jiān)視和對分割行的訪問提供支持。,Pentium的數(shù)據(jù)Cache支持U流水線和V流水線的二元訪問,以便支持輔助帶寬和簡化編譯程序的指令調(diào)度算法。,五、Pentium 微處理器的新型體系結(jié)構(gòu),Pentium微處理機把數(shù)據(jù)總線增至64位,以改善數(shù)據(jù)的傳送速率

33、,同時支持成組讀周期和成組寫回周期,除此之外,Pentium微處理器還增設(shè)了總線周期流水線,它允許兩個總線周期同時進行。Pentium存儲管理部件還擁有可選擇的體系結(jié)構(gòu),允許頁的大小達到4M字節(jié),Pentium微處理器增加了對有效數(shù)據(jù)的完整性檢測和對錯誤的檢測能力,對逐字節(jié)數(shù)據(jù)奇偶校驗仍提供支持。隨著新異常事故、機器校驗異常事故的出現(xiàn),Pentium微處理器還增加了地址奇偶校驗、內(nèi)部奇偶校驗。除此之外,在Pentium微處理機上還實現(xiàn)了功能性冗余校驗。,Pentium微處理器內(nèi)的譯碼部件的作用是把預(yù)取到預(yù)取緩沖器中的指令進行譯碼,以供Pentium微處理器執(zhí)行。在Pentium微處理器控制RO

34、M內(nèi)保存著指令的微代碼,Pentium微處理器就是利用這些微代碼控制各種指令的操作順序??刂芌OM部件對V和U兩條指令流水線直接實施控制功能。,第三章 80486微處理器指令系統(tǒng),第一節(jié)80486微處理器尋址方式,第二節(jié) 80486微處理器指令系統(tǒng),第一節(jié)80486微處理器的尋址方式,一、操作數(shù)尋址方式,要使微處理器能夠完成指令規(guī)定的操作,則指令中須包含2種信息,一是執(zhí)行什么操作,二是該操作所涉及的數(shù)據(jù)在哪里和結(jié)果存于何處,而尋找操作數(shù)所在地址的方法即為尋址方式(Addressing Mode)。80X86的尋址方式可分為兩類:操作數(shù)的尋址方式和轉(zhuǎn)移地址的尋址方式。,由于操作數(shù)作為指令的操作對

35、象,可以存儲在存儲器中(稱為存儲器操作數(shù))、寄存在寄存器中(稱為寄存器操作數(shù))或直接包含在指令中(稱為立即數(shù)),因此,與之對應(yīng)有多種尋址方式。80X86粗略地劃分可有3類10種尋址方式,其中訪問存儲器操作數(shù)有8種尋址方式。,(1)立即數(shù)尋址,在這種尋址的方式下,操作數(shù)作為立即數(shù)直接存在指令中,可為8位,16位和32位。,例: MOV AX,1234H MOV BL,78H MOV ECX,12345678H,(2)寄存器尋址,在這種方式下,操作數(shù)存放在CPU某個8位、16位或32 位寄存器中。,例: MOV EAX,EDX INC CL MOV DS,AX,該尋址方式指令碼短,且無需從存儲器取

36、操作數(shù),故執(zhí)行速度快,(3)直接尋址,在這種方式下,指令中的操作數(shù)部分直接給出了操作數(shù)的有效地址EA,它和操作碼一起放在存儲器的代碼段中,可以是16位或32位整數(shù)。但操作數(shù)一般在數(shù)據(jù)段DS中。,例:MOV AX,DS:1000H,;將DS段中1000H和1001H單元 的內(nèi)容送到AX中。,應(yīng)注意的是,指令中的DS不能省略。,直接尋址示意圖,(4)寄存器間接尋址,這種尋址方式下,操作數(shù)所在內(nèi)存單元的EA由規(guī)定的寄存器指出。,如果操作數(shù)不在上述規(guī)定的默認(rèn)段,而是在其他的段,則必須在指令中相應(yīng)的操作數(shù)前加上段超越前綴。例如:,MOV AX,ES:SI MOV AX,DS:BP,16位尋址時,EA可以

37、由SI,DI,BP或BX提供。,若以SI,DI,BX間接尋址,則默認(rèn)操作數(shù)在DS段中。,若以BP間接尋址,則默認(rèn)操作數(shù)在SS段中。, 32位尋址時,8個32位通用寄存器均可作間址寄存器。除ESP,EBP默認(rèn)段寄存器為SS外,其余6個通用寄存器均默認(rèn)段寄存器為DS。,(5)寄存器相對尋址方式,在這種方式中,操作數(shù)所在內(nèi)存單元的有效地址為規(guī)定的基址寄存器或變址寄存器的內(nèi)容與一個常量(即位移量)之和。,16位尋址時,BX和BP作為基址寄存器,BX默認(rèn)DS為段寄存器,BP默認(rèn)SS為段寄存器;SI和DI作為變址寄存器,默認(rèn)DS為段寄存器。位移量可以為8位或16位。,32位尋址時,8個32位通用寄存器均可

38、作基址/變址寄存器,其中ESP、EBP以SS為默認(rèn)段寄存器,其余6個通用寄存器均以DS為默認(rèn)段寄存器。位移量可以為8位或32位。,例如: MOV EAX,BX+24 ;也可以寫成 MOV EAX,24BX MOV DX ,EAX+1500;也可以寫成 MOV DX,1500EAX,在指令格式中,地址表達式寫成:,段寄存器: 基址寄存器 / 變址寄存器 + 位移量 或:段寄存器:位移量 基址寄存器 / 變址寄存器,(6)基址變址尋址方式,操作數(shù)的有效地址是一個基址寄存器和一個變址寄存器的內(nèi)容之和。,在指令格式中,地址表達式寫成:,段寄存器: 基址寄存器 + 變址寄存器 ,在這種方式中,基址寄存器

39、和變址寄存器都必須是規(guī)定的16位寄存器。當(dāng)基址寄存器和變址寄存器默認(rèn)的段寄存器不同時,一般規(guī)定由基址寄存器來決定默認(rèn)哪一個段寄存器作段基址指針。,(7)相對基址變址尋址方式,該方式中,操作數(shù)所在內(nèi)存單元的有效地址是一個基址寄存器與一個變址寄存器的內(nèi)容和一個常量(即位移量)之和。,在指令格式中,地址表達式寫成:,段寄存器: 基址寄存器 + 變址寄存器 + 位移量 或:段寄存器:位移量 基址寄存器 + 變址寄存器 或:段寄存器:位移量 基址寄存器 變址寄存器 ,這種尋址方式主要用于二維數(shù)組操作和二重循環(huán)等。,(8)比例變址尋址方式,這種尋址方式只適合于32位尋址的一種情況。,MOV EAX TAB

40、LEESI*4 ;TABLE是位移量,4是比例因子,操作數(shù)的EA是變址寄存器的內(nèi)容乘以指令中指定的比例因子再加上位移量之和。,在指令格式中,地址表達式寫成:,段寄存器:變址寄存器 比例因子 位移量 或:段寄存器:位移量變址寄存器 比例因子,其中比例因子可以是1,2,4,8中的任一個數(shù)。除ESP外的任何通用寄存器均可作變址寄存器,且EBP默認(rèn)SS作段寄存器,其余以DS作段寄存器。,該方式適用于對一維數(shù)組的數(shù)組元素進行檢索操作。位移量表示數(shù)組起始地址的偏移量,變址表示數(shù)組元素的下標(biāo),可變。當(dāng)數(shù)組元素大小為2,4,8時,用帶比例因子的變址尋址方式更方便、更高效。,(9)基址比例變址尋址方式,操作數(shù)的

41、EA是變址寄存器的內(nèi)容乘以比例因子再加上基址寄存器的內(nèi)容之和。,在指令格式中,地址表達式寫成:,段寄存器:變址寄存器 比例因子 基址寄存器 或:段寄存器: 基址寄存器 變址寄存器 比例因子,(10)相對基址比例變址尋址方式,操作數(shù)的EA是變址寄存器的內(nèi)容乘以比例因子,加上基址寄存器的內(nèi)容,再加上位移量之和。,在指令格式中,地址表達式寫成:,段寄存器: 基址寄存器 比例因子 變址寄存器 位移量 或:段寄存器:位移量 基址寄存器 比例因子 變址寄存器 或:段寄存器:位移量 基址寄存器 比例因子 變址寄存器 ,存儲器尋址時的段約定,二、轉(zhuǎn)移地址尋址方式,在指令系統(tǒng)中,有一組指令為程序轉(zhuǎn)移指令。程序轉(zhuǎn)

42、移指令的尋址方式涉及如何確定轉(zhuǎn)移的目標(biāo)地址。目標(biāo)地址可以在段內(nèi),也可以在段外。, 段內(nèi)直接尋址,轉(zhuǎn)移的目標(biāo)地址是當(dāng)前IP寄存器的內(nèi)容和一個8位或16位位移量之和。,指令的匯編語言格式表示為: JMP NEAR PTR PROGRM JMP SHORT OUTSET, 段內(nèi)間接尋址,該方式中,轉(zhuǎn)移的目標(biāo)地址是寄存器或存儲單元的內(nèi)容。寄存器或存儲單元的內(nèi)容可以用數(shù)據(jù)尋址方式中除立即數(shù)以外的任何一種尋址方式取得,所得到的內(nèi)容將用來取代IP寄存器的值。,段內(nèi)間接尋址轉(zhuǎn)移指令的匯編格式可以表示為: JMP CX JMP WORD PTR BX+TAB1, 段間直接尋址,這種尋址方式用于段間轉(zhuǎn)移,指令中直

43、接提供了目標(biāo)地址的段基址和偏移地址,所以,只要用指令中指定的偏移地址取代IP寄存器的內(nèi)容,用指令中指定的段基址取代CS寄存器的內(nèi)容就完成了從一個段到另一個段的轉(zhuǎn)移操作,,指令的匯編語言格式可表示為: JMP FAR PTR NEXT, 段間間接尋址,該方式下,用存儲器中兩個相繼字的內(nèi)容來取代IP和CS寄存器中的原始內(nèi)容,以達到段間轉(zhuǎn)移的目的。這里,存儲單元的地址是由指令指定除立即數(shù)方式和寄存器方式以外的任何一種數(shù)據(jù)尋址方式取得。,指令的匯編語言格式可表示為: JMP DWORD PTR REL+BX,第二節(jié) 80486微處理器指令系統(tǒng),80X86的指令系統(tǒng)向上兼容,都是在8086指令的基礎(chǔ)上發(fā)

44、展形成的。與80286相比,增加了32位操作和訪問存儲器的32位尋址方式。 80486可以工作在實模式、保護模式和虛擬86模式,為了支持系統(tǒng)工作模式,指令系統(tǒng)中設(shè)計了系統(tǒng)管理指令、保護模式控制指令以及高級語言支持指令等等。 80486的基本指令按功能可分為7類:數(shù)據(jù)傳送指令、算術(shù)運算指令、邏輯運算指令、字符串操作指令、控制轉(zhuǎn)移指令、處理器控制指令和按條件設(shè)置字節(jié)指令。下面分別給予介紹。,MOV指令允許的傳送關(guān)系,一 、數(shù)據(jù)傳送指令,1)通用數(shù)據(jù)傳送指令: 基本傳送指令(MOV) 格式:MOV 目標(biāo)操作數(shù),源操作數(shù) 例如:MOVBYTE PTR BX,55H;55H送給BX間址的字節(jié)型單元 MO

45、VBX,55H ;0055H送給BX間址的字型單元 符號擴展傳送指令MOVSX 格式:MOVSX 目標(biāo)操作數(shù),源操作數(shù) 例如:MOV DL,-16;DL = F0H MOVSX BX,DL;BX = FFF0H,而DH,DL不變 零擴展傳送指令MOVZX 格式:MOVZX 目標(biāo)操作數(shù),源操作數(shù) 例如:MOVZX EAX,CX ;將CX中16位數(shù)高位加0擴展為32位送入EAX MOVSX和MOVZX這兩條指令常被用于作除法時對被除數(shù)位數(shù)的擴展。 交換指令XCHG 格式: XCHG 目標(biāo)操作數(shù),源操作數(shù),地址傳送指令 LEA傳送指令 格式: LEA目標(biāo)操作數(shù),源操作數(shù) 例如:TABLEDB 31H

46、,32H,33H,34H LEA DI,TABLE 等效于 MOV DI,OFFSET TABLE 指針傳送指令 格式: LDS/LES/LFS/LGS/LSS 目標(biāo)操作數(shù),源操作數(shù) 例如:設(shè)數(shù)據(jù)段有 XYZ1 DF1234567890ABH XYZ2 DD56781234H 如此時DS已指向數(shù)據(jù)段: LESEBX,XYZ1 ;ES=1234H,EBX=567890ABH LDSSI,XYZ2 ;DS=5678H,SI=1234H,查表轉(zhuǎn)換指令XLAT 例如:利用查表轉(zhuǎn)換功能實現(xiàn)一位十六進制數(shù)與ASCII碼的轉(zhuǎn)換。 DATA SEGMENT TAB DB 0123456789ABCDEF NU

47、M DB? ;0F中的任一數(shù) DATA ENDS 代碼段設(shè)置如下指令,可查出與NUM單元中的數(shù)相對應(yīng)的ASCII編碼:MOV AX,DATA MOV DS,AX MOV BX,OFFSET TAB MOV AL,NUM XLAT 字節(jié)交換指令BSWAP 格式:BSWAP32位寄存器 標(biāo)志寄存器傳送指令LAHF/SAHF 格式:LAHF 或 SAHF,2)堆棧指令 壓棧指令PUSH 格式:PUSH源操作數(shù) 彈棧指令POP 格式:POP目標(biāo)操作數(shù) 16位標(biāo)志寄存器壓棧/彈棧指令PUSHF/POPF 格式:PUSHF POPF 32位標(biāo)志寄存器壓棧/彈棧指令PUSHFD/POPFD 格式:PUSHF

48、D POPFD 全部16位通用寄存器壓棧/彈棧指令PUSHA/POPA 格式:PUSHA POPA,全部32位通用寄存器壓棧/彈棧指令PUSHAD/POPAD 格式:PUSHAD POPAD 3)I/O指令 直接尋址的I / O指令 格式:IN AL/AX,PORT OUT PORT,AL/AX DX間址的I / O指令 格式:IN AL/AX/EAX,DX OUT DX,AL/AX/EAX,說明: 源操作數(shù)可以是8位、16位或32位的立即數(shù)、寄存器、段寄存器或存儲器操作數(shù),目標(biāo)操作數(shù)是與源操作數(shù)等長的寄存器、段寄存器(CS除外)或存儲器操作數(shù)。 源操作數(shù)和目標(biāo)操作數(shù)不能同時為存儲器操作數(shù)。如

49、:MOV BP,SI是非法指令。 源操作數(shù)和目標(biāo)操作數(shù)不能同在段寄存器中,如:MOV DS,ES是非法指令。 立即數(shù)不能作為目標(biāo)操作數(shù)。如:MOV 1234H,AX是非法指令。 不能將立即數(shù)直接傳送到段寄存器,如:MOV SS,1000H是非法指令。 當(dāng)目標(biāo)操作數(shù)為非直接尋址的存儲器操作數(shù)時,如源操作數(shù)是單字節(jié)的立即數(shù),則應(yīng)用PTR運算符說明目標(biāo)操作數(shù)的屬性,否則將被默認(rèn)為字型操作數(shù)。,二 、算術(shù)運算指令,1)基本四則運算 加法指令A(yù)DD/帶進位加法指令A(yù)DC 格式:ADD目標(biāo)操作數(shù),源操作數(shù) ;目標(biāo)操作數(shù) = 源操作數(shù) + 目標(biāo)操作數(shù) 格式:ADC目標(biāo)操作數(shù),源操作數(shù) ;目標(biāo)操作數(shù) = 源操

50、作數(shù) + 目標(biāo)操作數(shù)CF 減法指令SUB /帶借位減法指令SBB 格式:SUB目標(biāo)操作數(shù),源操作數(shù) ;目標(biāo)操作數(shù) = 源操作數(shù) 目標(biāo)操作數(shù) 格式:SBB目標(biāo)操作數(shù),源操作數(shù) ;目標(biāo)操作數(shù) = 源操作數(shù) 目標(biāo)操作數(shù)CF,加1指令I(lǐng)NC/減1指令DEC/求補指令NEG 格式:INC目標(biāo)操作數(shù);目標(biāo)操作數(shù) = 目標(biāo)操作數(shù) + 1 DEC目標(biāo)操作數(shù);目標(biāo)操作數(shù) = 目標(biāo)操作數(shù) 1。 求補指令NEG 格式:NEG目標(biāo)操作數(shù) ;目標(biāo)操作數(shù) = 0 目標(biāo)操作數(shù) 交換加法指令XADD 格式:XADD目標(biāo)操作數(shù),源操作數(shù) ;將源操作數(shù)和目標(biāo)操作數(shù)進行互換,然后將源操作數(shù)與目標(biāo)操作數(shù)之和送給目標(biāo)操作數(shù)。指令執(zhí)行后

51、的源操作數(shù)是指令執(zhí)行前的目標(biāo)操作數(shù)。 比較指令CMP 格式:CMP 目標(biāo)操作數(shù),源操作數(shù) ;目標(biāo)操作數(shù) - 源操作數(shù),比較并交換指令CMPXCHG 格式: CMPXCHG 目標(biāo)操作數(shù),源操作數(shù) ; 將目標(biāo)操作數(shù)與累加器AL,AX或EAX比較,若相等則將源操作數(shù)傳送到目標(biāo)操作數(shù),否則將目標(biāo)操作數(shù)傳送到累加器。 無符號數(shù)乘法指令MUL/帶符號數(shù)乘法指令I(lǐng)MUL 格式:IMUL源操作數(shù) ; AX /EAX AL/AX源操作數(shù) IMUL目標(biāo)操作數(shù),源操作數(shù) ;目標(biāo)操作數(shù)目標(biāo)操作數(shù)源操作數(shù) IMUL目標(biāo)操作數(shù),源操作數(shù),立即數(shù) ;在三操作數(shù)格式下,目標(biāo)操作數(shù)只能是16或32位的通用寄存器,源操作數(shù)是與目

52、標(biāo)操作數(shù)等長的寄存器操作數(shù)或內(nèi)存操作數(shù),立即數(shù)也與它們等長。8位立即數(shù)能自動進行符號擴展,轉(zhuǎn)換成16或32位的立即數(shù)。,無符號數(shù)除法DIV/帶符號數(shù)除法IDIV 格式: DIV源操作數(shù) ; AX/DX:AX/EDX:EAX源操作數(shù) ;商:AL/AX/EAX,余數(shù):AH/DX/EDX IDIV源操作數(shù) ;被除數(shù)和除數(shù)都是帶符號數(shù), ;商和余數(shù)的符號相同。 說明:若除數(shù)為0或商過大(超過保存商的累加器容量)時,產(chǎn)生0號中斷 符號位擴展(數(shù)據(jù)寬度變換)指令CBW,CWD,CWDE,CDQ 格式:CBW/CWD/CWDE/CDQ 說明: CBW將AL中的8位帶符號數(shù)帶符號擴展為16位AX中。 CWD將

53、AX中的16位帶符號數(shù)帶符號擴展為32位DX:AX中。 CWDE將AX中的16位帶符號數(shù)帶符號擴展為32位EAX中。 CDQ將EAX中的32位帶符號數(shù)帶符號擴展為64位EDX:EAX中。,2)十進制調(diào)整指令 格式:DAA ;組合BCD碼數(shù)的加法調(diào)整指令 DAS;組合BCD碼數(shù)的減法調(diào)整指令 AAA;分離BCD碼數(shù)的加法調(diào)整指令 AAS;分離BCD碼數(shù)的減法調(diào)整指令 AAM ;分離BCD碼數(shù)的乘法調(diào)整指令 AAD;分離BCD碼數(shù)的除法調(diào)整指令,AAD放在DIV之前,用于將AX中未組合BCD碼調(diào)整為二進制數(shù),使除法得到的商和余數(shù)為有效的未組合BCD碼 DAA、DAS、AAA、AAS、 AAM放在相

54、應(yīng)指令之后,MOV AL,08H ADD AL,09H DAA 結(jié)果: AL = 17D,兩個4位組合BCD碼(比如3579+2468)相加 MOV AL,BCD1 ADD AL,BCD2 DAA MOV BCD3,AL MOV AL,BCD1+1 ADC AL,BCD2+1 DAA MOV BCD3+1,AL,兩個ASCII碼相減 MOV AL,5 SUB AL,7 AASAL=08H,CF=1,非組合BCD碼的乘法(6*8) MOV AL,06H MOV BL,08H MUL BL AX:AL*BL AAM 結(jié)果: AX = 0408H,兩個非組合BCD碼除法(17/5=3。2) MOV

55、AX, 0107h MOV BL,5 AAD DIV BL AL:03,AH:02,比較及減法指令對標(biāo)志位影響討論,CMP op1,op2 1.相等:ZF=1,CF、OF、SF為0 2.不等:ZF=0; 看成無符號數(shù),op1op2,CF置1 否則CF為0 相減后,最高位為1,SF為1 否則,SF為0 看成有符號數(shù),若op1-op2超出有符號數(shù)表示范圍,OF為1,否則,OF為0,討論:比較(減法指令)標(biāo)志影響分析,CF ZF SF OF 3,5(03,05)1010 5,3(05,03)0000 3,-2(02,fe)1000 3,-128(03,80)1011 -2,3(fe,03)0010

56、-2,127(fe,7f)0001 -1,-2(ff,fe)0000 -2,-1(fe,ff)1010,加法運算對標(biāo)志位的影響,將 op1,op2的二進制碼相加(負數(shù)用補碼): 1.結(jié)果為0(忽略進位):ZF=1,否則ZF為0 2.相加后最高位向前有進位,CF置1, 否則CF為0 3.相加后最高位為1,SF為1,否則SF為0 4.相加后最高位和次高位之一有進位,OF為1,否則OF為0.實際上就是op1+op2超出有符號數(shù)表示范圍,即正數(shù)加正數(shù)得到了負數(shù),或負數(shù)加負數(shù)得到了正數(shù)。,討論:加法指令標(biāo)志影響分析,CF 次高位 ZF SF OF 1,1(01,01)00 0 0 0 1,127(01,

57、7f)01 0 1 1 2,-1(02,ff)11 0 0 0 1,-2(01,fe)00 0 1 0 -1,-1(ff,ff)11 0 1 0 -1,-128(ff,80)10 0 0 1 -1,1(ff,1)11 1 0 0,乘法運算對標(biāo)志位的影響,1。MUL對標(biāo)志位的影響 AF PF SF ZF狀態(tài)隨機 乘積高字節(jié)、字或雙字為0,CF、OF為0 乘積高字節(jié)、字或雙字非0,CF、OF為1 其余標(biāo)志位不影響 2。IMUL對標(biāo)志位的影響 AF PF SF ZF狀態(tài)隨機 乘積高字節(jié)、字或雙字為符號擴展,CF、OF為0 乘積高字節(jié)、字或雙字非符號擴展,CF、OF為1 其余標(biāo)志位不影響,除法運算對標(biāo)

58、志位的影響,DIV、IDIV AF 、 PF 、 SF 、 ZF 、 CF、OF狀態(tài)隨機 其余標(biāo)志位不影響,三、邏輯運算指令和移位指令 1)邏輯運算指令 邏輯與/或/異或指令 AND/OR/XOR 格式:AND/OR/XOR 目標(biāo)操作數(shù),源操作數(shù) 測試指令TEST 格式:TEST目標(biāo)操作數(shù),源操作數(shù) 邏輯非指令NOT 格式:NOT操作數(shù),TEST指令與AND相似,但只修改標(biāo)志位,不存儲結(jié)果 操作數(shù):op1,op2長度相同為字節(jié)、字或雙字。 reg reg reg mem reg imm mem reg mem imm,AND/OR/XOR/TEST指令對標(biāo)志位的影響,NOT指令對標(biāo)志位無影響,注意與NEG指令的區(qū)別,例:讀打印機狀態(tài)端口(3BD),判斷是否忙(最高位為0,打印機忙) MOV DX,3BDh Busy:IN AL,DX TEST AL,80h JZ busy,例如: 要求屏蔽0、1兩位,可用AND指令并設(shè)置常數(shù)0FCH MOVAL,0BFH ANDAL,0FCH ;結(jié)果AL=0BCH 要求第5位置1,可用OR指令 MOVAL,43H OR AL,20H ;結(jié)果AL=63H 將未組合BCD碼轉(zhuǎn)為ASCII碼 MOVAL,8 OR AL,30H ;結(jié)果AL=8 對AL高4位取反,低4位不變 MOVCL,0f0H XORA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論