版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
計算機硬件技術(shù)基礎(chǔ)第1頁/共303頁第一章微型計算機基礎(chǔ)第二章Intel系列微處理器第三章80486微處理器指令系統(tǒng)第四章匯編語言程序設(shè)計第五章存儲器及存儲管理第六章輸入/輸出方式與接口芯片第七章外設(shè)接口技術(shù)第八章總線目錄第2頁/共303頁㈠教學目標
介紹微機的基本知識以及微機系統(tǒng)的結(jié)構(gòu)、工作原理、主要性能指標和現(xiàn)代微機的先進技術(shù)。㈡學習要求
通過本章的學習,要求了解微機的基本結(jié)構(gòu)、簡單工作過程及現(xiàn)代微機的基本知識。第一章微型計算機基礎(chǔ)㈢講授內(nèi)容第3頁/共303頁第一章微型計算機基礎(chǔ)第一節(jié)微型計算機的組成第二節(jié)微型計算機的硬件結(jié)構(gòu)及簡單工作過程第三節(jié)微型計算機中的先進計算機技術(shù)第四節(jié)微型計算機的主要性能指標及典型微型計算機第4頁/共303頁第一節(jié)微型計算機的組成二、微型計算機的硬件組成一、微型計算機系統(tǒng)的組成硬件和軟件兩大部分組成第5頁/共303頁1.存儲器
存儲器是計算機中存儲程序和數(shù)據(jù)的部件。計算機的存儲器分為兩大部分,一部分為內(nèi)部存儲器或主存儲器,簡稱內(nèi)存或主存;另一部分為外部存儲器或輔助存儲器,簡稱外存或輔存。存儲容量描述存儲器存儲二進制信息量多少的指標。存儲二進制信息的基本單位是位(bit,b)。一般把8個二進制位組成的通用基本單元叫作字節(jié)(Byte,B)。微型計算機中通常以字節(jié)為單位表示存儲容量。1024B為1KB1024KB為1MB1024MB為1GB1024GB為1TB存儲速度描述存儲器工作快慢程度的指標,它指信息存入存儲器和從存儲器中取出所需要的時間。存儲的類型半導體存儲器磁記錄存儲器光盤存儲器第6頁/共303頁2.微處理器
微處理器是微型計算機的運算和控制指揮中心。不同的微處理器,其性能有所不同,但基本組成是相同的,由運算器、控制器和寄存器陣列三個主要部件組成。第7頁/共303頁①運算器
執(zhí)行算術(shù)運算和邏輯運算的部件,由累加器(Accumulator,A)、暫存器(Temporary,TMP)、算術(shù)邏輯單元(ArithmaticLogicUnit,ALU)、標志寄存器(FlagRegisters,F(xiàn))和一些邏輯電路組成。累加器算術(shù)邏輯單元標志寄存器CF進位標志
CF=1運算時產(chǎn)生了進/借位
0運算時無進/借位
ZF零標志
ZF=1運算結(jié)果為0
0運算結(jié)果非零
SF符號標志
SF=1運算結(jié)果為負
0運算結(jié)果為正
AF輔助進位標志
AF=1運算時有輔助進/借位
0運算時無輔助進/借位
PF奇偶標志
PF=1運算結(jié)果中“1”的個數(shù)為偶數(shù)
0運算結(jié)果中“1”的個數(shù)為奇數(shù)
OF符號標志
OF=1有溢出0無溢出第8頁/共303頁如:兩無符號數(shù)A、B進行比較:=若A-B后有ZF=1,則AB若A-B后有CF=1,則AB<若是帶符號數(shù)進行大小比較,能用CF標志來判斷?例:A=FFH,B=01H;A-B=FEH,此時CF=0,A>B?對帶符號數(shù)的大小判斷有兩種方法方法一:數(shù)值與符號分開判斷方法二:數(shù)值與符號同時判斷例:若A>0,B<0,應(yīng)有A>B成立①A=100D,B=-50D,
A-B有:01100100B+00110010B10010110BSF=1A<B?②A=15D,B=-5D,
A-B有:00001111B+00000101B00010100BSF=0A>B?第9頁/共303頁對帶符號數(shù)的大小判斷應(yīng)先判溢出標志OF,即A-B后,若OF=1則SF=1A>BSF=0A<B若OF=0則SF=0A>BSF=1A<B第10頁/共303頁②控制器
控制器是指令執(zhí)行部件,包括取指令、分析指令(指令譯碼)和執(zhí)行指令,由指令寄存器(InstructionRegister,IR)、指令譯碼器(InstructionDecoder,ID)和定時控制電路(TimingandControl)等組成。③寄存器陣列
寄存器陣列主要包含兩類寄存器,一是通用寄存器,供用戶使用;二是一些用途固定的專用寄存器,如程序計數(shù)器、堆棧指示器。程序計數(shù)器PC用于存放下一條要執(zhí)行的指令在存儲器中存放的地址。堆棧和堆棧指示器SP
堆棧是一塊設(shè)在內(nèi)存中按先進后出(FirstInLastOut,F(xiàn)ILO)原則組織的存儲區(qū)域,用于存放數(shù)據(jù)。數(shù)據(jù)存入棧區(qū)稱為壓入(PUSH),從棧區(qū)中取出數(shù)據(jù)稱為彈出(POP)。第11頁/共303頁三、微型計算機的軟件組成
堆棧指示器SP用于指示當前棧頂元素所在的位置,無論是壓棧還是彈棧總是在棧頂進行的。隨著對堆棧的壓入和彈出操作,SP的值會自動變化,NN-1N-K+1N-K┇┇
堆棧區(qū)(K個單元)SP數(shù)據(jù)存放方式為先進后出(FILO)┇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)用軟件則是用戶根據(jù)自己的需要,為解決某一實際問題而編制的程序,如企業(yè)的財務(wù)管理、人事管理,設(shè)備狀態(tài)監(jiān)測的數(shù)據(jù)采集與處理等。第12頁/共303頁第二節(jié)微型計算機的硬件結(jié)構(gòu)及簡單工作過程一、硬件結(jié)構(gòu)
微型計算機在硬件上普遍采用總線結(jié)構(gòu),總線結(jié)構(gòu)使系統(tǒng)構(gòu)成方便,并具有很好的可維護性和可擴展性。第13頁/共303頁二、總線
所謂總線,就是一組用于信息公共傳輸?shù)男盘柧€,連在總線上的所有部件均能使用的公共線路,但使用必須是分時的。按傳輸信息方向,總線分為只能單方向傳輸信息的單向總線和可以雙向傳送信息的雙向總線。按傳輸信息類別,總線分為傳輸數(shù)據(jù)信息的數(shù)據(jù)總線(DataBus,DB)、傳輸?shù)刂沸畔⒌牡刂房偩€(AddressBus,AB)和傳輸控制信息的控制總線(ControlBus,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第14頁/共303頁因為地址信息總是由微處理器發(fā)出,尋址存儲器或外設(shè),故AB為單向總線。AB的位數(shù)越寬,尋址的空間就越大。8位微處理器的地址總線為16位,即有AB15~AB016條地址線,尋址范圍為216=64KB;目前生產(chǎn)的微處理器尋址范圍已達到64GB。CB包括微處理器向存儲器發(fā)送的讀選通信號RD、寫選通信號WR,以及外設(shè)向微處理器發(fā)送的中斷請求信號NMI、INTR等??刂瓶偩€的各位作用不同,且一般都是單向的。地址總線AB控制總線CB
根據(jù)總線的組織方式,可把微型計算機的硬件結(jié)構(gòu)分為單總線、面向微處理器雙總線和面向存儲器雙總線結(jié)構(gòu)。第15頁/共303頁單總線結(jié)構(gòu)的微型計算機面向微處理器的雙總線結(jié)構(gòu)微型計算機第16頁/共303頁面向存儲器的雙總線結(jié)構(gòu)微型計算機四、簡單工作過程取指令、分析指令、執(zhí)行指令
以一個簡單程序執(zhí)行過程為例,說明計算機是怎樣工作的。程序功能:5CH+2EH,如結(jié)果無溢出,將結(jié)果存放到內(nèi)存0200H單元后停機;如有溢出,則直接停機。第17頁/共303頁程序如下:
ORG 1000H 對應(yīng)機器碼1:MOV A,5CH ;B0H 5CH2:ADD A,2EH ;04H2EH3:JO 100AH ;70H0AH4:MOV (0200H),A ;10HA2H00H02H5:HLT ;F4H第18頁/共303頁第19頁/共303頁第三節(jié)微型計算機中的先進計算機技術(shù)一、中斷技術(shù)
計算機暫停(或稱為掛起)正在執(zhí)行的程序轉(zhuǎn)去處理隨機事件,隨機事件處理完畢后,再恢復執(zhí)行原來的程序的過程稱為中斷。二、流水線技術(shù)
流水線(Pipeline)技術(shù)是一種將一條指令的執(zhí)行過程分解為多個步驟,并讓幾條指令的不同步驟操作在時間上重疊,從而實現(xiàn)幾條指令并行處理,提高程序運行速度的技術(shù)。每一個步驟均由一個獨立的電路來完成,若干個完成不同操作步驟的電路組成了指令流水線。第20頁/共303頁三、亂序執(zhí)行技術(shù)
所謂亂序執(zhí)行(OutofOrderExecution)技術(shù)就是允許指令按照不同于程序中指定的順序發(fā)送給執(zhí)行部件,從而加速程序執(zhí)行過程的一種最新技術(shù)。它本質(zhì)上是按數(shù)據(jù)流驅(qū)動原理工作的(傳統(tǒng)的計算機都是按指令流驅(qū)動原理工作的),根據(jù)操作數(shù)是否準備好來決定一條指令是否立即執(zhí)行。不能立即執(zhí)行的指令先擱置一邊,而把能立即執(zhí)行的后續(xù)指令提前執(zhí)行。四、推測執(zhí)行技術(shù)
推測執(zhí)行技術(shù)(或稱為預(yù)測執(zhí)行技術(shù))是為了充分發(fā)揮流水線與并行執(zhí)行技術(shù)和分支超順序執(zhí)行技術(shù)而采取的一種先進計算機技術(shù)。第21頁/共303頁五、高速緩沖存儲器技術(shù)
在32位微機中,為了加快處理速度,在CPU與主存儲器之間增設(shè)了一級或兩級高速小容量存儲器,稱之為高速緩沖存儲器(Cache)。高速緩沖存儲器的存取速度比主存要快一個數(shù)量級,大體與CPU的速度相當。CPU在取指令或取操作數(shù)時,首先看其是否在高速緩沖存儲器中,不在時才訪問主存儲器。指令或操作數(shù)在高速緩沖存儲器中時,稱為“命中”,反之稱為“未命中”。CPUCache內(nèi)存速度相當?shù)?2頁/共303頁六、虛擬存儲器技術(shù)
虛擬存儲器技術(shù)是一種通過硬件和軟件結(jié)合擴大用戶可用存儲空間的技術(shù)。它在內(nèi)存儲器和外存儲器(軟盤、硬盤或光盤)之間增加一些的硬件和軟件,使兩者形成一個有機整體。例:設(shè)80386中的Cache為32K若在一程序執(zhí)行到一條轉(zhuǎn)移指令JMPNEXT未命中┇JMPNEXT┇┇NEXT:MOVA,5CH┇32K(Cache)內(nèi)存CPU將NEXT以下32K程序復制到Cache中第23頁/共303頁第四節(jié)微型計算機的主要性能指標及典型微型計算機一、主要性能指標字長存儲容量運算速度外設(shè)擴展能力軟件配置指計算機內(nèi)部一次可以處理的二進制數(shù)碼的位數(shù)。計算機的運算速度一般用每秒鐘所能執(zhí)行的指令條數(shù)來表示。由于不同類型的指令的執(zhí)行時間不同,因而運算速度的計算方法也不同,指微型計算機配接各種外部設(shè)備的可能性、靈活性和適應(yīng)性。軟件是計算機的重要組成部分,它配置是否齊全,直接關(guān)系到計算機性能的好壞和效率的高低。第24頁/共303頁二、PC系列微機簡介(教材P15~P17自學)三、PC486硬件特點(教材P17~P21自學)四、PCPentium的硬件特點(教材P21~P22自學)第25頁/共303頁第二章Intel系列微處理器㈠教學目標㈡學習要求㈢講授內(nèi)容
介紹微處理器的基本概念,80x86微處理器的體系結(jié)構(gòu)、工作方式及引腳功能。
通過本章的學習,要求掌握Intel80x86系列微處理器內(nèi)部結(jié)構(gòu)的特點,工作方式及方式轉(zhuǎn)換,常用引腳功能的特點。
第26頁/共303頁第二章Intel系列微處理器第一節(jié)Intel系列微處理器概述第二節(jié)80486微處理器的體系結(jié)構(gòu)第三節(jié)Pentium微處理器的體系結(jié)構(gòu)第27頁/共303頁一、8086/8088微處理器8086是標準16位微處理器,內(nèi)外數(shù)據(jù)總線都為16位;8088是準16位微處理器,內(nèi)數(shù)據(jù)總線為16位,外數(shù)據(jù)總線為8位。8086/8088除了外數(shù)據(jù)位數(shù)及與此相關(guān)的部分邏輯稍有不同外,內(nèi)部結(jié)構(gòu)和基本性能相同,指令系統(tǒng)完全兼容。
在8086/8088的設(shè)計中,引人了兩個重要的概念:
指令流水線存儲器分段這兩個概念在以后升級的INTEL系列微處理器中一直被沿用和發(fā)展。正是這兩個概念的引入,使8086/8088與原來的8位微處理器相比,在運行速度、處理能力和對存儲空間訪問等性能方面有很大提高。第一節(jié)Intel系列微處理器概述第28頁/共303頁
8086/8088內(nèi)部結(jié)構(gòu)示意圖第29頁/共303頁總線接口單元BIU由段寄存器(CS、DS、SS、ES)、指令指針寄存器(IP)、內(nèi)部暫存器、指令隊列、地址加法器及總線控制電路組成。它的主要作用是負責執(zhí)行所有的“外部總線”操作,即當EU從指令隊列中取走指令時,BIU即從內(nèi)存中取出后續(xù)的指令代碼放入隊列中;當EU需要數(shù)據(jù)時,BIU根據(jù)EU輸出的地址,從指定的內(nèi)存單元或外設(shè)中取出數(shù)據(jù)供EU使用;當運算結(jié)束時,BIU將運算結(jié)果送給指定的內(nèi)存單元或外設(shè)。指令隊列主要使8086/8088的EU和BIU并行工作,取指令操作、分析指令操作重疊進行,從而形成了兩級指令流水線結(jié)構(gòu),減少了CPU為取指令而必須等待的時間,提高了CPU的利用率,加快了整機運行速度,也降低了對存儲器存取速度的要求。執(zhí)行單元EU由通用寄存器、運算數(shù)據(jù)寄存器、算術(shù)邏輯單元(ALU)及EU控制電路組成。它的主要作用是分析和執(zhí)行指令,即EU控制電路從指令隊列取出指令代碼,經(jīng)譯碼,發(fā)出相應(yīng)的控制信號;數(shù)據(jù)在ALU中進行運算;運算過程及結(jié)果的某些特征保留在標志寄存器(EFLAGS)中。第30頁/共303頁
段寄存器為8086/8088采用存儲器分段管理提供了主要的硬件支持。8086/8088可尋址的存儲器空間為1MB。通過分段管理,把1MB的物理存儲空間分成若干邏輯段,每段最大為64KB。段的起始單元地址叫段基址。存儲器的分段方式不是唯一的,各段之間可以連續(xù)、分離、部分重疊和完全重疊。這主要取決于對各個段寄存器的預(yù)置內(nèi)容。一個具體的存儲單元的物理地址,可以屬于一個邏輯段,也可以同屬于幾個邏輯段。
8086/8088的4個當前段分別稱為:代碼段、數(shù)據(jù)段、堆棧段、附加段
采用存儲器分段管理后,存儲器地址有物理地址和邏輯地址之分。CPU訪問存儲器時,地址總線AB上送出的是物理地址。
編程時則采用邏輯地址,邏輯地址有段基址和段內(nèi)偏移地址兩部分組成,兩者都是16位。第31頁/共303頁
由16位邏輯地址變換為20位物理地址的關(guān)系如下:物理地址=段基址*16+段內(nèi)偏移
物理地址的生成是在BIU的地址加法器中完成的。
物理地址生成示意圖第32頁/共303頁二、80286微處理器80286是一種增強微處理器型標準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個段寄存器裝入的不再是段基址,而是指向段描述符表中某個段描述符的索引值,稱為段選擇符。
總之,80286主要是增強了多用戶、多任務(wù)系統(tǒng)所必須的任務(wù)轉(zhuǎn)換功能、虛擬存儲器管理功能和多種保護功能,不僅運算速度大為提高,而且支持多用戶、多任務(wù)操作。第33頁/共303頁三、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級指令流水線。⑤
提供了32位外部總線接口,最大數(shù)據(jù)傳輸速率顯著提高。⑥
運算速度大大加快。第34頁/共303頁四、Pentium微處理器
Pentium是一種高性能的64位微處理器,它對80486作了下列重大的改進:①
采用超標量體系結(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)化和升級。⑨
提供了靈活的存儲器頁面管理功能。第35頁/共303頁第二節(jié)80486微處理器的體系結(jié)構(gòu)一、80486的體系結(jié)構(gòu)特點80486是32位高性能處理器,它以提高性能和面向多處理器系統(tǒng)結(jié)構(gòu)為主要目標,它具有如下的特點:①
80486采用的是單倍的時鐘頻率,即在80486CPU的CLK端輸入的外部時鐘頻率就是其內(nèi)部處理器的工作時鐘頻率。②
內(nèi)部包含有8K字節(jié)的指令/數(shù)據(jù)合用型高速緩存器。③
內(nèi)部包含了相當于增強型80387功能的浮點協(xié)處理器。④
對使用頻率較高的基本指令,由原來的微代碼控制改為硬件邏輯直接控制,并在指令執(zhí)行單元采用了RISC技術(shù)和流水線技術(shù)。⑤
采用了突發(fā)式總線傳輸方式。第36頁/共303頁⑥
內(nèi)部數(shù)據(jù)總線的寬度有32位、64位等多種,并分別用于不同單元之間的數(shù)據(jù)通路⑦
對某些內(nèi)部寄存器中部分位的內(nèi)容進行了變動和增加。⑧
面向多處理器結(jié)構(gòu),在總線接口部件上增加了總線監(jiān)視功能,增加了支持多機操作的指令。第37頁/共303頁二、80486的內(nèi)部結(jié)構(gòu)與內(nèi)部寄存器1、內(nèi)部結(jié)構(gòu)第38頁/共303頁①總線接口單元
主要用于外部地址、數(shù)據(jù)和控制總線管理,完成預(yù)取指令、讀/寫數(shù)據(jù)等總線操作。②指令預(yù)取單元
內(nèi)含一個32字節(jié)的指令預(yù)取隊列,當指令預(yù)取隊列不滿且總線空閑時,指令預(yù)取單元通過總線接口單元從存儲器讀取指令放到隊列中。
指令預(yù)取單元平均可以預(yù)取10條指令。③指令譯碼單元
從指令預(yù)取隊列中讀取指令,進行預(yù)譯碼后將其送入已譯碼的指令隊列等待執(zhí)行。如果預(yù)譯碼時發(fā)現(xiàn)是轉(zhuǎn)移或調(diào)用指令,可提前通知總線接口部件去新的目標地址取指令,以刷新指令預(yù)取隊列。④指令執(zhí)行單元
完成各種算術(shù)邏輯運算和變址地址生成。在控制單元中,大多數(shù)指令采用微程序控制結(jié)構(gòu)執(zhí)行,常用基本指令采用硬件邏輯控制執(zhí)行。第39頁/共303頁⑤段管理單元用于存儲器分段管理,將邏輯地址變換為32位線性地址。⑥頁管理單元用于進行存儲器分頁管理,將線性地址變換為32位物理地址。⑦高速緩存單元⑧浮點運算單元用于加速指令/數(shù)據(jù)的訪問過程。
相當于一個增強型浮點協(xié)處理器80387,專門用作浮點運算,可與ALU的整數(shù)運算并行進行。第40頁/共303頁80486的流水線工作示意圖第41頁/共303頁2.內(nèi)部寄存器
1)基本寄存器①通用寄存器②指令指針寄存器(EIP)
有8個32位的EAX、EBX、ECX、EDX、ESI、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③標志寄存器(EFLAGS):32位標志寄存器(EFLAGS)中包含三種標志:狀態(tài)標志(S)、控制標志(C)和系統(tǒng)標志(X)。第42頁/共303頁④段寄存器:狀態(tài)標志(S):反映指令執(zhí)行過程及結(jié)果的狀態(tài)??刂茦酥荆–):它僅含一個標志DF,用于控制串操作指令的地址改變方向。系統(tǒng)標志(X):它用于控制I/O、屏蔽中斷、調(diào)試、任務(wù)轉(zhuǎn)換和控制保護方式與虛擬8086方式間的轉(zhuǎn)換。
80486有6個段寄存器(CS、SS、DS、ES、FS、GS),用于決定程序使用存儲器區(qū)域塊。其中CS指明當前的代碼段;SS指明當前的堆棧段;DS、ES、FS和GS指明當前的4個數(shù)據(jù)段。
在保護方式下,80486段的長度可以在1字節(jié)到4G字節(jié)之間變化;而在實地址方式下,段的長度最大為64KB。第43頁/共303頁基本寄存器示意圖
第44頁/共303頁2)系統(tǒng)級寄存器
系統(tǒng)級寄存器包括4個控制寄存器和4個系統(tǒng)地址寄存器。這些寄存器只能由在特權(quán)級0上運行的程序訪問。
4個控制寄存器的作用是存放全局特性的機器狀態(tài),控制片內(nèi)Cache、FPU和分段、分頁單元的工作。各個控制寄存器都是32位。①控制寄存器第45頁/共303頁②系統(tǒng)地址寄存器
系統(tǒng)地址寄存器只在保護方式下使用,所以又叫保護方式寄存器。80486用4個寄存器把在保護方式下常用的數(shù)據(jù)基地址、界限和其他屬性保存起來,以確保其快速性。
全局描述符表寄存器(GDTR)和局部描述符表寄存器(LDTR)分別用來存放前述的GDT和LDT的32位線性基地址等內(nèi)容。中斷描述符表寄存器(IDTR)用來存放中斷描述符表的基址和界限。任務(wù)寄存器TR用來存放任務(wù)狀態(tài)段(TTS)的基址、界限和其它屬性。第46頁/共303頁③調(diào)試和測試寄存器80486提供了8個32位的可編程寄存器來支持調(diào)試功能。它還定義了5個測試寄存器,測試寄存器實際上并不是80486體系結(jié)構(gòu)的標準部分,只是為了增強系統(tǒng)的可測性而引入的附加硬件。第47頁/共303頁④浮點寄存器13個浮點寄存器,8個80位浮點數(shù)據(jù)寄存器用作固定寄存器組或硬件堆棧,1個16位標記字寄存器用來標記每個數(shù)據(jù)寄存器的內(nèi)容,1個16位控制寄存器用于提供FPU的若干處理選擇項,1個16位狀態(tài)寄存器用于反映FPU的總狀態(tài),2個48位的指令、數(shù)據(jù)指針寄存器的作用是為用戶編寫錯誤處理程序提供指令、數(shù)據(jù)指針。80486的FPU中包含有:
第48頁/共303頁三、80486的三種工作方式及相互轉(zhuǎn)換(1)實地址方式:
它的工作原理與8086基本相同,主要區(qū)別是80486能借助操作數(shù)長度前綴,處理32位數(shù)據(jù),且增加了兩個數(shù)據(jù)段寄存器FS和GS,提高了運行速度。(2)保護虛地址方式:(3)虛擬8086方式:
它引入了虛擬存儲器的概念。CPU可訪問的物理存儲空間為4GB,程序可用的虛擬地址空間為64TB。段的長度在啟動頁功能時是4GB,不啟動頁功能時是1MB。可支持多用戶和單用戶的多任務(wù)操作,并對各任務(wù)提供了多方面的保護機制。
它是一種既有保護功能又能執(zhí)行8086代碼的工作方式,可以說是保護方式的一種子方式。工作原理與保護虛擬地址方式下相同,但是程序指定的邏輯地址解釋與8086相同,即可以和實地址方式下一樣執(zhí)行8086的應(yīng)用程序。第49頁/共303頁80486的三種工作方式和相互轉(zhuǎn)換示意圖
第50頁/共303頁四、80486的外部引腳信號第51頁/共303頁第三節(jié)Pentium微處理器的體系結(jié)構(gòu)一、Pentium微處理器的內(nèi)部結(jié)構(gòu)Pentium微處理器的內(nèi)部結(jié)構(gòu)
第52頁/共303頁Pentium微處理器是Intel公司繼80486之后推出的64位高性能微處理器,它具有超標量體系結(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ù)取PF、首次譯碼DI、二次譯碼DI、執(zhí)行EX和寫回WB共5個操作步驟組成。它在流水線中增加了一些輔助性硬件以加速指令的執(zhí)行。第53頁/共303頁(1)超標量執(zhí)行
Pentium微處理器配置的超標量執(zhí)行機構(gòu)允許兩條指令以并行方式執(zhí)行。采用的技術(shù)是把生成地址的硬件和算術(shù)運算邏輯運算部件配置成兩個各自獨立的整數(shù)流水線,一個叫U流水線,另一個叫V流水線。Pentium微處理器的片內(nèi)Cache是分離式的Cache,即指令代碼Cache和數(shù)據(jù)Cache是各自獨立的片內(nèi)Cache。當執(zhí)行部件對存儲器進行訪問時,由指令Cache和數(shù)據(jù)Cache分別提供指令代碼信息和數(shù)據(jù)信息。總線接口部件內(nèi)包括了各自獨立的32位地址總線和64位數(shù)據(jù)總線。Pentium微處理器的預(yù)取緩沖部件內(nèi)包括了指令預(yù)取和指令譯碼兩個子功能部件。Pentium微處理器采用了預(yù)測新技術(shù)。為了支持這項新技術(shù),芯片內(nèi)裝備有兩個預(yù)取緩沖存儲器,一個是以線性方式來預(yù)取代碼,另一個則根據(jù)轉(zhuǎn)移目標緩沖存儲器BTB預(yù)取代碼。(2)轉(zhuǎn)移預(yù)測判斷第54頁/共303頁三、Pentium微處理器的浮點流水線(1)浮點流水線操作(2)浮點流水線微體系結(jié)構(gòu)Pentium浮點流水線由預(yù)取PF、首次譯碼D1、二次譯碼D2、取操作數(shù)、首次執(zhí)行X1、二次執(zhí)行X2、寫浮點數(shù)WF和出錯報告ER共8個操作步驟組成。其中預(yù)取PF和首次譯碼Dl這兩個操作步驟與整數(shù)流水線中的前兩個操作步驟公用同一硬件資源。
對“基本”浮點指令來說,也允許單周期通過,也就是說能以每個時鐘執(zhí)行一條指令的速率執(zhí)行。Pentium微處理器的浮點流水線由浮點接口、寄存器組及控制部件FIRC、浮點指數(shù)功能部件FEXP、浮點乘法部件FMUL、浮點加法部件FADD、浮點除法部件FDIV以及浮點舍入處理部件PFRND共7個部件組成。第55頁/共303頁四、Pentium微處理器的片內(nèi)CachePentium采用了代碼和數(shù)據(jù)各自獨立的分離式Cache。每一種Cache的規(guī)模大小均為8K字節(jié),采用的是二路相聯(lián)的映像技術(shù),每個Cache行大小為32個字節(jié)。在每一個Cache內(nèi),都裝備有一個專用的轉(zhuǎn)換旁視緩沖存儲器TLB,用來快速地將線性地址轉(zhuǎn)換成物理地址。
它遵循MESI協(xié)議,既可以將數(shù)據(jù)Cache根據(jù)寫回方案進行配置,也可以將數(shù)據(jù)Cache根據(jù)逐行寫貫穿方案進行配置。數(shù)據(jù)Cache的標記是三端口式的結(jié)構(gòu),以支持兩個數(shù)據(jù)的傳送和所訪問的周期是在同一時鐘周期之內(nèi)。
指令代碼Cache是一個固有的寫保護Cache,指令代碼Cache的標記是三端口式的結(jié)構(gòu),以便對Cache操作實施監(jiān)視和對分割行的訪問提供支持。Pentium的數(shù)據(jù)Cache支持U流水線和V流水線的二元訪問,以便支持輔助帶寬和簡化編譯程序的指令調(diào)度算法。第56頁/共303頁五、Pentium微處理器的新型體系結(jié)構(gòu)Pentium微處理機把數(shù)據(jù)總線增至64位,以改善數(shù)據(jù)的傳送速率,同時支持成組讀周期和成組寫回周期,除此之外,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微處理器控制ROM內(nèi)保存著指令的微代碼,Pentium微處理器就是利用這些微代碼控制各種指令的操作順序??刂芌OM部件對V和U兩條指令流水線直接實施控制功能。第57頁/共303頁㈠教學目標介紹80486的尋址方式及指令系統(tǒng)。㈡學習要求
通過本章的學習,要求熟悉各種尋址方式的使用場合以及常用指令的使用方法。㈢講授內(nèi)容第三章80486微處理器指令系統(tǒng)第58頁/共303頁第三章80486微處理器指令系統(tǒng)第一節(jié)80486微處理器尋址方式第二節(jié)80486微處理器指令系統(tǒng)第59頁/共303頁第一節(jié)80486微處理器的尋址方式一、操作數(shù)尋址方式
80X86的尋址方式可分為兩類:操作數(shù)的尋址方式和轉(zhuǎn)移地址的尋址方式。
由于操作數(shù)作為指令的操作對象,可以存儲在存儲器中(稱為存儲器操作數(shù))、寄存在寄存器中(稱為寄存器操作數(shù))或直接包含在指令中(稱為立即數(shù)),因此,與之對應(yīng)有多種尋址方式。80X86粗略地劃分可有3類10種尋址方式,其中訪問存儲器操作數(shù)有8種尋址方式。第60頁/共303頁(1)立即數(shù)尋址
在這種尋址的方式下,操作數(shù)作為立即數(shù)直接存在指令中,可為8位,16位和32位。例:
MOVAX,1234H
MOVBL,78HMOVECX,12345678H
以第一條指令為例的立即數(shù)尋址方式的執(zhí)行過程如圖。
立即尋址示意圖(2)寄存器尋址在這種方式下,操作數(shù)存放在CPU某個8位、16位或32位寄存器中。
例: MOVEAX,EDXINCCLMOVDS,AX該尋址方式指令碼短,且無需從存儲器取操作數(shù),故執(zhí)行速度快第61頁/共303頁(3)直接尋址
在這種方式下,指令中的操作數(shù)部分直接給出了操作數(shù)的有效地址EA,它和操作碼一起放在存儲器的代碼段中,可以是16位或32位整數(shù)。但操作數(shù)一般在數(shù)據(jù)段DS中。例:MOVAX,DS:[1000H];將DS段中1000H和1001H單元的內(nèi)容送到AX中。應(yīng)注意的是,指令中的DS不能省略。第62頁/共303頁(4)寄存器間接尋址這種尋址方式下,操作數(shù)所在內(nèi)存單元的EA由規(guī)定的寄存器指出。
如果操作數(shù)不在上述規(guī)定的默認段,而是在其他的段,則必須在指令中相應(yīng)的操作數(shù)前加上段超越前綴。例如:MOVAX,ES:[SI]MOVAX,DS:[BP]●16位尋址時,EA可以由SI,DI,BP或BX提供。(其中BX、BP也稱基址寄存器,SI、DI稱變址寄存器)
若以SI,DI,BX間接尋址,則默認操作數(shù)在DS段中。若以BP間接尋址,則默認操作數(shù)在SS段中●32位尋址時,8個32位通用寄存器均可作間址寄存器。除ESP,EBP默認段寄存器為SS外,其余6個通用寄存器均默認段寄存器為DS。MOVSI,1000HMOVAX,[SI]第63頁/共303頁(5)寄存器相對尋址方式MOVEAX,[BX+24];也可以寫成MOVEAX,24[BX]MOVDX,[EAX+1500];也可以寫成MOVDX,1500[EAX]MOVDX,[BX+SI](6)基址變址尋址方式(7)相對基址變址尋址方式MOVDX,[BX+SI+24](8)比例變址尋址方式MOVDX,[變址寄存器×比例因子+位移量]
其中比例因子可以是1,2,4,8中的任一個數(shù)。除ESP外的任何通用寄存器均可作變址寄存器,且EBP默認SS作段寄存器,其余以DS作段寄存器。這種尋址方式只適合于32位尋址的一種情況。第64頁/共303頁(9)基址比例變址尋址方式MOVDX,[變址寄存器×比例因子+基址寄存器](10)相對基址比例變址尋址方式MOVDX,[基址寄存器+比例因子×變址寄存器+位移量]第65頁/共303頁訪存操作類型默認段寄存器允許超越的段寄存器偏移地址寄存器取指令代碼CS無(E)IP堆棧操作SS無(E)SP源串數(shù)據(jù)訪問DSCS,SS,ESFS,GS(E)SI目的串數(shù)據(jù)訪問ES無(E)DI通用數(shù)據(jù)訪問DSCS,SS,ES,FS,GS偏移地址以(E)BP、(E)SP間接尋址的指令SSCS,DS,ES,FS,GS偏移地址存儲器尋址時的段約定第66頁/共303頁二、轉(zhuǎn)移地址尋址方式
在指令系統(tǒng)中,有一組指令為程序轉(zhuǎn)移指令。程序轉(zhuǎn)移指令的尋址方式涉及如何確定轉(zhuǎn)移的目標地址。目標地址可以在段內(nèi),也可以在段外。第67頁/共303頁⑴
段內(nèi)直接尋址
轉(zhuǎn)移的目標地址是當前IP寄存器的內(nèi)容和一個8位或16位位移量之和。指令的匯編語言格式表示為:
JMPNEARPTRPROGRM
JMPSHORTPTROUTSET⑵段內(nèi)間接尋址
該方式中,轉(zhuǎn)移的目標地址是寄存器或存儲單元的內(nèi)容。寄存器或存儲單元的內(nèi)容可以用數(shù)據(jù)尋址方式中除立即數(shù)以外的任何一種尋址方式取得,所得到的內(nèi)容將用來取代IP寄存器的值。段內(nèi)間接尋址轉(zhuǎn)移指令的匯編格式可以表示為:
JMPCX
JMPWORDPTR[BX+TAB1]
第68頁/共303頁⑶
段間直接尋址
這種尋址方式用于段間轉(zhuǎn)移,指令中直接提供了目標地址的段基址和偏移地址,所以,只要用指令中指定的偏移地址取代IP寄存器的內(nèi)容,用指令中指定的段基址取代CS寄存器的內(nèi)容就完成了從一個段到另一個段的轉(zhuǎn)移操作,指令的匯編語言格式可表示為:
JMPFARPTRNEXT⑷段間間接尋址
該方式下,用存儲器中兩個相繼字的內(nèi)容來取代IP和CS寄存器中的原始內(nèi)容,以達到段間轉(zhuǎn)移的目的。這里,存儲單元的地址是由指令指定除立即數(shù)方式和寄存器方式以外的任何一種數(shù)據(jù)尋址方式取得。
指令的匯編語言格式可表示為:
JMPDWORDPTR[REL+BX]第69頁/共303頁第二節(jié)80486微處理器指令系統(tǒng)
80X86的指令系統(tǒng)向上兼容,都是在8086指令的基礎(chǔ)上發(fā)展形成的。與80286相比,增加了32位操作和訪問存儲器的32位尋址方式。
80486可以工作在實模式、保護模式和虛擬86模式,為了支持系統(tǒng)工作模式,指令系統(tǒng)中設(shè)計了系統(tǒng)管理指令、保護模式控制指令以及高級語言支持指令等等。
80486的基本指令按功能可分為7類:數(shù)據(jù)傳送指令、算術(shù)運算指令、邏輯運算指令、字符串操作指令、控制轉(zhuǎn)移指令、處理器控制指令和按條件設(shè)置字節(jié)指令。下面分別給予介紹。第70頁/共303頁完成數(shù)據(jù)的傳送工作,不影響任何標志基本傳送指令
MOV格式:MOVOP1,OP2目的操作數(shù)源操作數(shù)功能:OP1OP2可完成:注意:目的操作數(shù)不能是CS!一、數(shù)據(jù)傳送指令1)通用數(shù)據(jù)傳送指令:寄存器寄存器寄存器存儲器段寄存器寄存器段寄存器存儲器寄存器
存儲器立即數(shù)第71頁/共303頁符號擴展傳送指令MOVSX格式:MOVSXOP1,OP2;OP1為16位或32位寄存器OP2為8位或16位寄存器或存儲器格式:MOVZXOP1,OP2;OP1為16位或32位寄存器OP2為8位或16位寄存器或存儲器例如:MOVDL,-16;DL=F0H MOVSXBX,DL;BX=FFF0H,而DH,DL不變零擴展傳送指令MOVZX例如:MOVZXEAX,CX;將CX中16位數(shù)高位加0擴展為32位送入EAX
MOVSX和MOVZX這兩條指令常被用于作除法時對被除數(shù)位數(shù)的擴展。第72頁/共303頁交換指令XCHG格式:XCHGOP1,OP2功能:OP1OP2可完成:例:XCHGAX,BX
;AXBX寄存器寄存器寄存器存儲器LEA傳送指令功能:
將OP1所在位置的有效地址(16位或32位)送往寄存器(16位或32位)。例:LEABX,SEGPTMOVBX,OFFSETSEGPTLEAREG,OP1格式:地址傳送指令等價第73頁/共303頁指針傳送指令LDS、LES、LFS、LGS、LSS格式:LDSREG,OP1功能:將存儲單元中的內(nèi)容送至目的寄存器和DS(或ES、FS、GS、SS)例:SEGPTDD12345678HLDSSI,SEGPT則指令執(zhí)行后:DS=1234HSI=5678H又如:TABLEDD13572468HLESBX,TABLE則指令執(zhí)行后:ES=1357HBX=2468H第74頁/共303頁查表轉(zhuǎn)換指令XLAT例:將16進制數(shù)0~F轉(zhuǎn)換為與之對應(yīng)的ASCII碼格式:XLAT;將(BX+AL)AL使用XLAT指令的條件:●在數(shù)據(jù)段中建一張ASCII碼表●表首地址的偏移量送BX●待轉(zhuǎn)換數(shù)放入AL中AC-TABDB‘0123456789ABCDEF’MOVBX,OFFSETAC-TABMOVAL,[SI]XLAT┇┇;表首地址的偏移量→BX;取待轉(zhuǎn)換數(shù);轉(zhuǎn)換結(jié)果→AL第75頁/共303頁字節(jié)交換指令BSWAP格式:BSWAPREG32功能:內(nèi)部各字節(jié)互換
例:MOVEBX,77886655HBSWAPEBX
執(zhí)行后:
EBX=
55668877H標志寄存器傳送指令LAHF/SAHF格式:LAHF或SAHFLAHF將標志寄存器的低字節(jié)→AH(低字節(jié)的內(nèi)容是
SFZF×AF×PF×CF)SAHF將AH的內(nèi)容→標志寄存器的低字節(jié)功能:第76頁/共303頁全部通用寄存器內(nèi)容壓棧和彈棧指令
格式:PUSHA
將所有16位寄存器壓棧,順序為:
AX、CX、DX、BX、SP、BP、SI、DI
格式:PUSHAD
將所有32位寄存器壓棧,順序為:EAX、
ECX、EDX、EBX、ESP、EBP、ESI、EDI
格式:POPA
格式:POPAD
將堆棧中的數(shù)據(jù)彈給16位寄存器,順序為與壓棧指令相反
將堆棧中的數(shù)據(jù)彈給32位寄存器,順序為與壓棧指令相反壓棧/彈棧指令PUSH/POP
格式:PUSHOP1;OP1可是16位或32位的寄存器、存儲器操作數(shù)或立即數(shù)POPOP12)堆棧指令第77頁/共303頁如:AX=11H,BX=22HCX=33H,DX=44HSI=55H,DI=66HSP=80H,BP=84HPUSHA執(zhí)行后有:SP00H11HxxH
注意:壓棧的順序為
AX、CX、DX、BX、
SP、BP、SI、DI20080H第78頁/共303頁如:AX=11H,BX=22HCX=33H,DX=44HSI=55H,DI=66HSP=7EH,BP=84HPUSHA執(zhí)行后有:SP00H11H33H00HxxH
注意:壓棧的順序為
AX、CX、DX、BX、
SP、BP、SI、DI20080H2007EH第79頁/共303頁如:AX=11H,BX=22HCX=33H,DX=44HSI=55H,DI=66HSP=7CH,BP=84HPUSHA執(zhí)行后有:SP00H11H33H00HxxH00H44H
注意:壓棧的順序為
AX、CX、DX、BX、
SP、BP、SI、DI20080H2007CH第80頁/共303頁如:AX=11H,BX=22HCX=33H,DX=44HSI=55H,DI=66HSP=7AH,BP=84HPUSHA執(zhí)行后有:SP00H11H33H00HxxH00H22H00H44H
注意:壓棧的順序為
AX、CX、DX、BX、
SP、BP、SI、DI20080H2007AH第81頁/共303頁如:AX=11H,BX=22HCX=33H,DX=44HSI=55H,DI=66HSP=78H,BP=84HPUSHA執(zhí)行后有:SP00H11H33H00HxxH00H78H00H22H00H44H
注意:壓棧的順序為
AX、CX、DX、BX、
SP、BP、SI、DI20080H20078H第82頁/共303頁如:AX=11H,BX=22HCX=33H,DX=44HSI=55H,DI=66HSP=76H,BP=84HPUSHA執(zhí)行后有:SP00H11H33H00HxxH00H84H00H78H00H22H00H44H
注意:壓棧的順序為
AX、CX、DX、BX、
SP、BP、SI、DI20080H20076H第83頁/共303頁如:AX=11H,BX=22HCX=33H,DX=44HSI=55H,DI=66HSP=74H,BP=84HPUSHA執(zhí)行后有:SP00H11H33H00HxxH00H55H00H84H00H78H00H22H00H44H
注意:壓棧的順序為
AX、CX、DX、BX、
SP、BP、SI、DI20080H20074H第84頁/共303頁如:AX=11H,BX=22HCX=33H,DX=44HSI=55H,DI=66HSP=72H,BP=84HPUSHA執(zhí)行后有:SP00H11H33H00HxxH00H66H00H55H00H84H00H78H00H22H00H44H
注意:壓棧的順序為
AX、CX、DX、BX、
SP、BP、SI、DI20080H20072H第85頁/共303頁如:AX=11H,BX=22HCX=33H,DX=44HSI=55H,DI=66HSP=70H,BP=84HPUSHA執(zhí)行后有:SP00H11H33H00HxxH00H66H00H55H00H84H00H78H00H22H00H44H
注意:壓棧的順序為
AX、CX、DX、BX、
SP、BP、SI、DI20080H20070H第86頁/共303頁
設(shè)堆棧分布如圖:POPA執(zhí)行后有:AX=BX=CX=DX=SI=DI=BP=SPxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H21016H第87頁/共303頁
設(shè)堆棧分布如圖:POPA執(zhí)行后有:AX=BX=CX=DX=SI=DI=BP=0012HSP21018HxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H21016H第88頁/共303頁
設(shè)堆棧分布如圖:POPA執(zhí)行后有:AX=BX=CX=DX=SI=DI=BP=0034H0012HSP2101AHxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H21016H第89頁/共303頁
設(shè)堆棧分布如圖:POPA執(zhí)行后有:AX=BX=CX=DX=SI=DI=BP=0034H0012H0056HSP2101CHxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H21016H第90頁/共303頁
設(shè)堆棧分布如圖:POPA執(zhí)行后有:AX=BX=CX=DX=SI=DI=BP=0034H0012H0056HSP2101EHxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H21016H第91頁/共303頁
設(shè)堆棧分布如圖:POPA執(zhí)行后有:AX=BX=CX=DX=SI=DI=BP=0021H0034H0012H0056HSP21020HxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H21016H第92頁/共303頁
設(shè)堆棧分布如圖:POPA執(zhí)行后有:AX=BX=CX=DX=SI=DI=BP=0021H0031H0034H0012H0056HSP21022HxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H21016H第93頁/共303頁
設(shè)堆棧分布如圖:POPA執(zhí)行后有:AX=BX=CX=DX=SI=DI=BP=0021H0041H0031H0034H0012H0056HSP21024HxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H21016H第94頁/共303頁
設(shè)堆棧分布如圖:POPA執(zhí)行后有:AX=BX=CX=DX=SI=DI=BP=0051H0021H0041H0031H0034H0012H0056HSP21026HxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H21016H第95頁/共303頁DX間址的I/O指令輸入格式:INOP1,OP2;OP1(OP2)INAL,9FHINAL,DXMOVDX,310H輸出格式:OUTOP1,OP2;(OP1)OP23)I/O指令I(lǐng)N/OUT直接尋址的I/O指令第96頁/共303頁二、算術(shù)運算指令1)基本四則運算加/減法指令A(yù)DD/SUBADDSUBOP1,OP2;OP1OP1±OP2例:
ADDAL,BL;設(shè)
AL=17H,BL=09H,CF=1,則指令執(zhí)行后
AL=BL=CF=SF=ZF=20H09H000帶進/借位加/減法指令A(yù)DC/SBBADCSBBOP1,OP2;OP1OP1±OP2±CFOP1、OP2不能同時為存儲器操作數(shù),OP1不能是立即數(shù)例:ADCDL,BL;設(shè)
DL=17H,BL=09H,CF=1,則指令執(zhí)行后
DL=BL=CF=SF=ZF=21H09H000該類指令要影響所有狀態(tài)標志第97頁/共303頁加1/減1指令I(lǐng)NC/DEC格式:INCDECOP1;OP1OP1±1該類指令不影響CF標志例:INCCX執(zhí)行前:CX=1234H,CF=1;執(zhí)行后:CX=CF=1235H1求補指令NEG格式:NEGOP1;OP10-(OP1)交換加法指令XADD格式:XADDOP1,OP2OP1(OP1)+(OP2);OP2(OP1)例:
MOVBL,12HMOVBH,34HXADDBH,BL程序執(zhí)行后:BH=BL=46H34H第98頁/共303頁
例:完成14326545784322H+98786765432322H
運算14326545784322H98786765432322HDP1DB22H,43H,78H,45HDP2DB22H,23H,43H,65HDB65H,32H,14HDB67H,78H,98HSUMDB8DUP(?)完成該7字節(jié)加法運算的程序段為:LEASI,DP1;建指針MOVCX,7XORBL,BLMOVAL,[SI];取數(shù)ADCAL,[SI+7];相加MOV[SI+0EH],AL;存數(shù)INCSI;修改指針LOOPAGAIN;循環(huán)AGAIN:ADCBL,0MOV[SI+0EH],BL;存進位第99頁/共303頁比較指令CMPCMPOP1,OP2格式:;OP1-OP2比較并交換指令CMPXCHGCMPXCHGOP1,OP2格式:功能:OP1-AL/AX/EAX若ZF=1,OP1OP2若ZF=0,AL/AX/EAXOP1第100頁/共303頁無符號數(shù)乘法指令MUL格式:MULOP1功能:AL(AX/EAX)×OP1AX(DX:AX/EDX:EAX)結(jié)果
如:
MULSI;AX×SIDX:AX
例:試編制出實現(xiàn)Z=128×8
的程序段MOVAL,128MOVBL,8MULBL
該程序段執(zhí)行后:AX=0400H第101頁/共303頁
帶符號數(shù)乘法指令
IMUL(有三種形式):●IMULOP1●IMULOP1,OP2●IMULOP1,OP2,OP3注意:OP1、OP2同上
OP3必須是立即數(shù);OP1、OP2均為16位或32位的寄存器或存儲器操作數(shù)。
OP2可以是立即數(shù)
功能:OP1×OP2OP1結(jié)果注意:當結(jié)果超過16位或32
位時,高位自然丟失,
有CF=1,OF=1
功能:OP2×OP3OP1結(jié)果功能:AL(AX/EAX)×OP1AX(DX:AX/EDX:EAX)結(jié)果第102頁/共303頁例:MOVAL,0FEHMOVBL,2IMULBL
;AX=
FFFCHMOVCX,6MOVBX,8IMULCX,BX
;CX=0030HMOVDX,3IMULBX,DX,3
;BX=0009HMOVDX,0FFFDHIMULBX,DX,3
;BX=FFF7H第103頁/共303頁
除法指令
DIV/IDIV格式:DIVOP1IDIVOP1功能:AX(DX:AX,EDX:EAX)÷OP1商余數(shù)AL(AX;EAX)AH(DX;EDX)若除數(shù)為0或商過大(超過保存商的累加器容量)時,產(chǎn)生0號中斷符號位擴展指令格式:CBW;字節(jié)→字
AL→AX
CWD;字→雙字
AX→DX:AX
CWDE;字→雙字
AX→EAX
CDQ;雙字→四字EAX→EDX:EAX
例:將變量ONE除以TWO,結(jié)果存入BUFF單元,設(shè)ONE,TWO均為字型變量MOVAX,ONECWDIDIVTWOMOVBUFF,AX;取被除數(shù);擴充為32位;送商第104頁/共303頁2)十進制調(diào)整指令①對加/減法進行調(diào)整的原理
例:692
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加氣混凝土配料澆注工安全理論考核試卷含答案
- 光伏砷化鎵組件制造工班組建設(shè)模擬考核試卷含答案
- 加濕軟麻工安全行為考核試卷含答案
- 鉆井架安裝工復試知識考核試卷含答案
- 高頻等離子工崗前履職考核試卷含答案
- 2025年加氣柱合作協(xié)議書
- 2025年電氣、電子設(shè)備用玻璃部件相關(guān)工業(yè)品用玻璃部件項目發(fā)展計劃
- 2025年照明器具生產(chǎn)專用設(shè)備合作協(xié)議書
- 2026年上海市黃浦區(qū)初三上學期語文一模試卷及答案
- 犬類介紹課件
- 2025年全國職業(yè)院校技能大賽中職組(母嬰照護賽項)考試題庫(含答案)
- 2026江蘇鹽城市阜寧縣科技成果轉(zhuǎn)化服務(wù)中心選調(diào)10人考試參考題庫及答案解析
- 托管機構(gòu)客戶投訴處理流程規(guī)范
- 2026年及未來5年中國建筑用腳手架行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報告
- 銀行客戶信息安全課件
- 2026年四川單招單招考前沖刺測試題卷及答案
- 2026年全國公務(wù)員考試行測真題解析及答案
- 2026元旦主題班會:馬年猜猜樂馬年成語教學課件
- 架桿租賃合同
- 汽車美容裝潢工(四級)職業(yè)資格考試題庫-下(判斷題匯總)
- 哈工大歷年電機學試卷及答案詳解
評論
0/150
提交評論