[理版]硬件技巧基礎(chǔ)_第1頁(yè)
[理版]硬件技巧基礎(chǔ)_第2頁(yè)
[理版]硬件技巧基礎(chǔ)_第3頁(yè)
[理版]硬件技巧基礎(chǔ)_第4頁(yè)
[理版]硬件技巧基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩297頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)硬件技術(shù)基礎(chǔ)學(xué)時(shí)數(shù)安排講課: 54學(xué)時(shí)實(shí)驗(yàn): 36學(xué)時(shí)課件制作: 黃 勤 甘思源 李 楠 聯(lián)系電話: 65106554第一章 微型計(jì)算機(jī)基礎(chǔ)第二章 intel系列微處理器 第三章 80486微處理器指令系統(tǒng) 第四章匯編語(yǔ)言程序設(shè)計(jì) 第五章 存儲(chǔ)器及存儲(chǔ)管理第六章輸入/輸出方式與接口芯片 第七章外設(shè)接口技術(shù) 第八章總線 目 錄 教學(xué)目標(biāo) 介紹微機(jī)的基本知識(shí)以及微機(jī)系統(tǒng)的結(jié)構(gòu)、工作原理、主要性能指標(biāo)和現(xiàn)代微機(jī)的先進(jìn)技術(shù)。 學(xué)習(xí)要求 通過(guò)本章的學(xué)習(xí),要求了解微機(jī)的基本結(jié)構(gòu)、簡(jiǎn)單工作過(guò)程及現(xiàn)代微機(jī)的基本知識(shí)。第一章 微型計(jì)算機(jī)基礎(chǔ) 講授內(nèi)容第一章 微型計(jì)算機(jī)基礎(chǔ)第一節(jié) 微型計(jì)算機(jī)的組成第二節(jié) 微

2、型計(jì)算機(jī)的硬件結(jié)構(gòu)及簡(jiǎn)單工作過(guò)程第三節(jié) 微型計(jì)算機(jī)中的先進(jìn)計(jì)算機(jī)技術(shù) 第四節(jié)微型計(jì)算機(jī)的主要性能指標(biāo)及典型微型計(jì)算機(jī) 第一節(jié) 微型計(jì)算機(jī)的組成二、微型計(jì)算機(jī)的硬件組成一、微型計(jì)算機(jī)系統(tǒng)的組成硬件和軟件兩大部分組成1.存儲(chǔ)器 存儲(chǔ)器是計(jì)算機(jī)中存儲(chǔ)程序和數(shù)據(jù)的部件。計(jì)算機(jī)的存儲(chǔ)器分為兩大部分,一部分為內(nèi)部存儲(chǔ)器或主存儲(chǔ)器,簡(jiǎn)稱內(nèi)存或主存;另一部分為外部存儲(chǔ)器或輔助存儲(chǔ)器,簡(jiǎn)稱外存或輔存。 存儲(chǔ)容量 描述存儲(chǔ)器存儲(chǔ)二進(jìn)制信息量多少的指標(biāo)。存儲(chǔ)二進(jìn)制信息的基本單位是位(bit,b)。一般把8個(gè)二進(jìn)制位組成的通用基本單元叫作字節(jié)(byte,b)。微型計(jì)算機(jī)中通常以字節(jié)為單位表示存儲(chǔ)容量。 1024b為1

3、kb 1024kb為1mb 1024mb為1gb 1024gb為1tb 存儲(chǔ)速度 描述存儲(chǔ)器工作快慢程度的指標(biāo),它指信息存入存儲(chǔ)器和從存儲(chǔ)器中取出所需要的時(shí)間。 存儲(chǔ)的類型 半導(dǎo)體存儲(chǔ)器 磁記錄存儲(chǔ)器 光盤存儲(chǔ)器 2.微處理器 微處理器是微型計(jì)算機(jī)的運(yùn)算和控制指揮中心。不同的微處理器,其性能有所不同,但基本組成是相同的,由運(yùn)算器、控制器和寄存器陣列三個(gè)主要部件組成。 運(yùn)算器 執(zhí)行算術(shù)運(yùn)算和邏輯運(yùn)算的部件,由累加器(accumulator,a)、暫存器(temporary,tmp)、算術(shù)邏輯單元(arithmatic logic unit,alu)、標(biāo)志寄存器(flag registers,f)

4、和一些邏輯電路組成。累加器算術(shù)邏輯單元標(biāo)志寄存器cfcf進(jìn)位標(biāo)志進(jìn)位標(biāo)志 cf=cf=1 1 運(yùn)算時(shí)產(chǎn)生了進(jìn)運(yùn)算時(shí)產(chǎn)生了進(jìn)/ /借位借位 0 0 運(yùn)算時(shí)無(wú)進(jìn)運(yùn)算時(shí)無(wú)進(jìn)/ /借位借位 zfzf零標(biāo)志零標(biāo)志 zf=zf=1 1 運(yùn)算結(jié)果為運(yùn)算結(jié)果為0 0 0 0 運(yùn)算結(jié)果非零運(yùn)算結(jié)果非零 sfsf符號(hào)標(biāo)志符號(hào)標(biāo)志 sf=sf=1 1 運(yùn)算結(jié)果為負(fù)運(yùn)算結(jié)果為負(fù) 0 0 運(yùn)算結(jié)果為正運(yùn)算結(jié)果為正 afaf輔助進(jìn)位標(biāo)志輔助進(jìn)位標(biāo)志 af=af=1 1 運(yùn)算時(shí)有輔助進(jìn)運(yùn)算時(shí)有輔助進(jìn)/ /借位借位 0 0 運(yùn)算時(shí)無(wú)輔助進(jìn)運(yùn)算時(shí)無(wú)輔助進(jìn)/ /借位借位 pfpf奇偶標(biāo)志奇偶標(biāo)志 pf=pf=1 1 運(yùn)算結(jié)果中運(yùn)

5、算結(jié)果中“1”1”的個(gè)數(shù)為偶數(shù)的個(gè)數(shù)為偶數(shù) 0 0 運(yùn)算結(jié)果中運(yùn)算結(jié)果中“1”1”的個(gè)數(shù)為奇數(shù)的個(gè)數(shù)為奇數(shù) ofof符號(hào)標(biāo)志符號(hào)標(biāo)志 of=of=1 1 有溢出有溢出0 0 無(wú)溢出無(wú)溢出如:兩無(wú)符號(hào)數(shù)a、b進(jìn)行比較 :=若ab 后有 zf=1,則 a b若ab 后有 cf=1,則 a b若是帶符號(hào)數(shù)進(jìn)行大小比較,能用cf標(biāo)志來(lái)判斷?例:a=ffh,b=01h;ab=feh,此時(shí)cf=0,ab?對(duì)帶符號(hào)數(shù)的大小判斷有兩種方法方法一:數(shù)值與符號(hào)分開判斷方法一:數(shù)值與符號(hào)分開判斷方法二:數(shù)值與符號(hào)同時(shí)判斷方法二:數(shù)值與符號(hào)同時(shí)判斷例:若a0 ,b0 ,應(yīng)有ab 成立 a=100d,b=50d, ab

6、有: 0 1 1 0 0 1 0 0 b 0 0 1 1 0 0 1 0 b 1 0 0 1 0 1 1 0 b sf = 1 ab ? a=15d,b=5d, ab有: 0 0 0 0 1 1 1 1 b 0 0 0 0 0 1 0 1 b 0 0 0 1 0 1 0 0 b sf = 0 ab ?對(duì)帶符號(hào)數(shù)的大小判斷應(yīng)先判溢出標(biāo)志 of ,即a ab b 后,若后,若of = 1 of = 1 則則 sf = 1 a sf = 1 a b b sf = 0 a sf = 0 a b b 若若of = 0 of = 0 則則 sf = 0 a sf = 0 a b b sf = 1 a sf

7、 = 1 a b b 控制器 控制器是指令執(zhí)行部件,包括取指令、分析指令(指令譯碼)和執(zhí)行指令,由指令寄存器(instruction register,ir)、指令譯碼器(instruction decoder,id)和定時(shí)控制電路(timing and control)等組成。 寄存器陣列 寄存器陣列主要包含兩類寄存器,一是通用寄存器,供用戶使用;二是一些用途固定的專用寄存器,如程序計(jì)數(shù)器、堆棧指示器。程序計(jì)數(shù)器pc用于存放下一條要執(zhí)行的指令在存儲(chǔ)器中存放的地址。 堆棧和堆棧指示器sp 堆棧是一塊設(shè)在內(nèi)存中按先進(jìn)后出(first in last out,filo)原則組織的存儲(chǔ)區(qū)域,用于存放

8、數(shù)據(jù)。數(shù)據(jù)存入棧區(qū)稱為壓入(push),從棧區(qū)中取出數(shù)據(jù)稱為彈出(pop)。 三、微型計(jì)算機(jī)的軟件組成 堆棧指示器堆棧指示器sp用于指用于指示當(dāng)前棧頂元素所在的位示當(dāng)前棧頂元素所在的位置,無(wú)論是壓棧還是彈棧置,無(wú)論是壓棧還是彈??偸窃跅m斶M(jìn)行的。隨著總是在棧頂進(jìn)行的。隨著對(duì)堆棧的壓入和彈出操作,對(duì)堆棧的壓入和彈出操作,sp的值會(huì)自動(dòng)變化,的值會(huì)自動(dòng)變化,nn-1n-k+1n-k 堆棧區(qū)堆棧區(qū)(k個(gè)單元個(gè)單元)sp數(shù)據(jù)存放方式為數(shù)據(jù)存放方式為先進(jìn)后出先進(jìn)后出(filo)3.輸入輸出設(shè)備 輸入設(shè)備輸出設(shè)備 計(jì)算機(jī)的軟件包含系統(tǒng)軟件和應(yīng)用軟件兩部分。系統(tǒng)軟件是使用和管理計(jì)算機(jī)的軟件,如操作系統(tǒng)、數(shù)據(jù)

9、庫(kù)管理系統(tǒng)、網(wǎng)絡(luò)管理系統(tǒng)以及各種語(yǔ)言處理程序、系統(tǒng)維護(hù)程序等。應(yīng)用軟件則是用戶根據(jù)自己的需要,為解決某一實(shí)際問(wèn)題而編制的程序,如企業(yè)的財(cái)務(wù)管理、人事管理,設(shè)備狀態(tài)監(jiān)測(cè)的數(shù)據(jù)采集與處理等。第二節(jié) 微型計(jì)算機(jī)的硬件結(jié)構(gòu) 及簡(jiǎn)單工作過(guò)程一、硬件結(jié)構(gòu) 微型計(jì)算機(jī)在硬件上普遍采用總線結(jié)構(gòu),總線結(jié)構(gòu)使系統(tǒng)構(gòu)成方便,并具有很好的可維護(hù)性和可擴(kuò)展性。 二、總線 所謂總線,就是一組用于信息公共傳輸?shù)男盘?hào)線,連在總線上的所有部件均能使用的公共線路,但使用必須是分時(shí)的。按傳輸信息方向,總線分為只能單方向傳輸信息的單向總線和可以雙向傳送信息的雙向總線。按傳輸信息類別,總線分為傳輸數(shù)據(jù)信息的數(shù)據(jù)總線(data bus

10、,db)、傳輸?shù)刂沸畔⒌牡刂房偩€(address bus ,ab )和傳輸控制信息的控制總線(control bus, cb)。三、 數(shù)據(jù)總線、地址總線、控制總線因?yàn)閿?shù)據(jù)傳輸是雙向的,故db是雙向總線。db的位數(shù)越寬,一次數(shù)據(jù)傳輸?shù)男畔⒘烤驮酱螅?位db一次只能傳輸1個(gè)字節(jié)的數(shù)據(jù)信息,而64位db則一次可以傳輸8個(gè)字節(jié)的數(shù)據(jù)信息。數(shù)據(jù)總線db因?yàn)榈刂沸畔⒖偸怯晌⑻幚砥靼l(fā)出,尋址存儲(chǔ)器或外設(shè),故ab為單向總線。ab的位數(shù)越寬,尋址的空間就越大。8位微處理器的地址總線為16位,即有ab15ab0 16條地址線,尋址范圍為216=64kb;目前生產(chǎn)的微處理器尋址范圍已達(dá)到64gb。cb包括微處理器向

11、存儲(chǔ)器發(fā)送的讀選通信號(hào)rd、寫選通信號(hào)wr,以及外設(shè)向微處理器發(fā)送的中斷請(qǐng)求信號(hào)nmi、intr等。控制總線的各位作用不同,且一般都是單向的。地址總線ab控制總線cb 根據(jù)總線的組織方式,可把微型計(jì)算機(jī)的硬件結(jié)構(gòu)分為單總線、面向微處理器雙總線和面向存儲(chǔ)器雙總線結(jié)構(gòu)。單總線結(jié)構(gòu)的微型計(jì)算機(jī)單總線結(jié)構(gòu)的微型計(jì)算機(jī) 面向微處理器的雙總線結(jié)構(gòu)微型計(jì)算機(jī)面向微處理器的雙總線結(jié)構(gòu)微型計(jì)算機(jī) 面向存儲(chǔ)器的雙總線結(jié)構(gòu)微型計(jì)算機(jī)面向存儲(chǔ)器的雙總線結(jié)構(gòu)微型計(jì)算機(jī)四、簡(jiǎn)單工作過(guò)程取指令、分析指令、執(zhí)行指令 以一個(gè)簡(jiǎn)單程序執(zhí)行過(guò)程為例,說(shuō)明計(jì)算機(jī)是怎樣工作的。程序功能:5ch+2eh,如結(jié)果無(wú)溢出,將結(jié)果存放到內(nèi)存0

12、200h單元后停機(jī);如有溢出,則直接停機(jī)。程序如下:org1000h 對(duì)應(yīng)機(jī)器碼1:mova,5ch;b0h 5ch2:adda,2eh;04h 2eh3:jo100ah;70h 0ah4:mov(0200h),a; 10h a2h 00h 02h5: hlt ; f4h第三節(jié) 微型計(jì)算機(jī)中的先進(jìn)計(jì)算機(jī)技術(shù)一、中斷技術(shù) 計(jì)算機(jī)暫停(或稱為掛起)正在執(zhí)行的程序轉(zhuǎn)去處理隨機(jī)事件,隨機(jī)事件處理完畢后,再恢復(fù)執(zhí)行原來(lái)的程序的過(guò)程稱為中斷。 二、流水線技術(shù) 流水線(pipeline)技術(shù)是一種將一條指令的執(zhí)行過(guò)程分解為多個(gè)步驟,并讓幾條指令的不同步驟操作在時(shí)間上重疊,從而實(shí)現(xiàn)幾條指令并行處理,提高程序運(yùn)

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

14、沖存儲(chǔ)器技術(shù) 在32位微機(jī)中,為了加快處理速度,在cpu與主存儲(chǔ)器之間增設(shè)了一級(jí)或兩級(jí)高速小容量存儲(chǔ)器,稱之為高速緩沖存儲(chǔ)器(cache)。高速緩沖存儲(chǔ)器的存取速度比主存要快一個(gè)數(shù)量級(jí),大體與cpu的速度相當(dāng)。cpu在取指令或取操作數(shù)時(shí),首先看其是否在高速緩沖存儲(chǔ)器中,不在時(shí)才訪問(wèn)主存儲(chǔ)器。指令或操作數(shù)在高速緩沖存儲(chǔ)器中時(shí),稱為“命中”,反之稱為“未命中”。cpucache內(nèi)內(nèi) 存存速度相當(dāng)速度相當(dāng)六、虛擬存儲(chǔ)器技術(shù) 虛擬存儲(chǔ)器技術(shù)是一種通過(guò)硬件和軟件結(jié)合擴(kuò)大用戶可用存儲(chǔ)空間的技術(shù)。它在內(nèi)存儲(chǔ)器和外存儲(chǔ)器(軟盤、硬盤或光盤)之間增加一些的硬件和軟件,使兩者形成一個(gè)有機(jī)整體。例:設(shè)例:設(shè) 803

15、86 中的中的 cache 為為 32k若在一程序執(zhí)行到一條轉(zhuǎn)移指令若在一程序執(zhí)行到一條轉(zhuǎn)移指令jmp next未命中未命中 jmp next next : mov a, 5ch 32k (cache)內(nèi)內(nèi) 存存cpu 將將 next 以下以下 32k 程序復(fù)制到程序復(fù)制到 cache 中中第四節(jié)微型計(jì)算機(jī)的主要性能指標(biāo)及典型 微型計(jì)算機(jī) 一、主要性能指標(biāo)字長(zhǎng)存儲(chǔ)容量運(yùn)算速度外設(shè)擴(kuò)展能力軟件配置指計(jì)算機(jī)內(nèi)部一次可以處理的二進(jìn)制數(shù)碼的位數(shù)。 計(jì)算機(jī)的運(yùn)算速度一般用每秒鐘所能執(zhí)行的指令條數(shù)來(lái)表示。由于不同類型的指令的執(zhí)行時(shí)間不同,因而運(yùn)算速度的計(jì)算方法也不同, 指微型計(jì)算機(jī)配接各種外部設(shè)備的可能性

16、、靈活性和適應(yīng)性。 軟件是計(jì)算機(jī)的重要組成部分,它配置是否齊全,直接關(guān)系到計(jì)算機(jī)性能的好壞和效率的高低。 二、pc系列微機(jī)簡(jiǎn)介 (教材p15p17 自學(xué))三、pc486硬件特點(diǎn) (教材p17p21 自學(xué))四、pc pentium的硬件特點(diǎn) (教材p21p22 自學(xué))第二章 intel系列微處理器 教學(xué)目標(biāo) 學(xué)習(xí)要求 講授內(nèi)容 介紹微處理器的基本概念,80 x86微處理器的體系結(jié)構(gòu)、工作方式及引腳功能。 通過(guò)本章的學(xué)習(xí),要求掌握intel80 x86系列微處理器內(nèi)部結(jié)構(gòu)的特點(diǎn),工作方式及方式轉(zhuǎn)換,常用引腳功能的特點(diǎn)。 第二章 intel系列微處理器 第一節(jié) intel系列微處理器概述 第二節(jié) 8

17、0486微處理器的體系結(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è)計(jì)中,引人了兩個(gè)重要的概念: 指令流水線 存儲(chǔ)器分段 這兩個(gè)概念在以后升級(jí)的intel系列微處理器中一直被沿用和發(fā)展。正是這兩個(gè)概念的引入,使80868088 與原來(lái)的8位微處理器相比,在運(yùn)行速度、處理能力和對(duì)存儲(chǔ)空間訪問(wèn)等性能方面有很大提高。

18、第一節(jié) intel系列微處理器概述 8086/80888086/8088內(nèi)部結(jié)構(gòu)示意圖內(nèi)部結(jié)構(gòu)示意圖總線接口單元biu由段寄存器(cs、ds、ss、es)、指令指針寄存器(ip)、內(nèi)部暫存器、指令隊(duì)列、地址加法器及總線控制電路組成。它的主要作用是負(fù)責(zé)執(zhí)行所有的“外部總線”操作,即當(dāng)eu從指令隊(duì)列中取走指令時(shí),biu即從內(nèi)存中取出后續(xù)的指令代碼放入隊(duì)列中;當(dāng)eu需要數(shù)據(jù)時(shí),biu根據(jù)eu輸出的地址,從指定的內(nèi)存單元或外設(shè)中取出數(shù)據(jù)供eu使用;當(dāng)運(yùn)算結(jié)束時(shí),biu將運(yùn)算結(jié)果送給指定的內(nèi)存單元或外設(shè)。指令隊(duì)列主要使8086/8088的eu和biu并行工作,取指令操作、分析指令操作重疊進(jìn)行,從而形成了

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

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

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

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

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

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

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

26、。在控制單元中,大多數(shù)指令采用微程序控制結(jié)構(gòu)執(zhí)行,常用基本指令采用硬件邏輯控制執(zhí)行。段管理單元用于存儲(chǔ)器分段管理,將邏輯地址變換為32位線性地址。頁(yè)管理單元用于進(jìn)行存儲(chǔ)器分頁(yè)管理,將線性地址變換為32位物理地址。高速緩存單元浮點(diǎn)運(yùn)算單元用于加速指令/數(shù)據(jù)的訪問(wèn)過(guò)程。 相當(dāng)于一個(gè)增強(qiáng)型浮點(diǎn)協(xié)處理器80387,專門用作浮點(diǎn)運(yùn)算,可與alu的整數(shù)運(yùn)算并行進(jìn)行。8048680486的流水線工作示意圖的流水線工作示意圖2.內(nèi)部寄存器 1)基本寄存器 通用寄存器 指令指針寄存器 (eip) 有8個(gè)32位的eax、ebx、ecx、edx、esi、edi、ebp、esp;它們的低16位可以單獨(dú)訪問(wèn)被命名為:

27、ax、bx、cx、dx、si、di、bp、sp。其中ax、bx、cx、dx還可以分別分成兩個(gè)8位寄存器:ah、al、bh、bl、ch、cl、dh、dl。 eip用于保存下一條待預(yù)取指令相對(duì)于代碼段基址的偏移量。它的低16位可以單獨(dú)訪問(wèn),稱之為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í)行過(guò)程及結(jié)果的狀態(tài)??刂茦?biāo)志(c):它僅含一個(gè)標(biāo)志df,用于控制串操作指令的地址改變方向。系統(tǒng)標(biāo)志(x):它用于控制i/o、屏蔽中斷、調(diào)試、任務(wù)轉(zhuǎn)換和控制保護(hù)方式與虛擬8086方式間的

28、轉(zhuǎn)換。 80486有6個(gè)段寄存器(cs、ss、ds、es、fs、gs),用于決定程序使用存儲(chǔ)器區(qū)域塊。其中cs指明當(dāng)前的代碼段;ss指明當(dāng)前的堆棧段;ds、es、fs和gs指明當(dāng)前的4個(gè)數(shù)據(jù)段。 在保護(hù)方式下,80486段的長(zhǎng)度可以在1字節(jié)到4g字節(jié)之間變化;而在實(shí)地址方式下,段的長(zhǎng)度最大為64kb?;炯拇嫫魇疽鈭D基本寄存器示意圖 2)系統(tǒng)級(jí)寄存器 系統(tǒng)級(jí)寄存器包括4個(gè)控制寄存器和4個(gè)系統(tǒng)地址寄存器。這些寄存器只能由在特權(quán)級(jí)0上運(yùn)行的程序訪問(wèn)。 4個(gè)控制寄存器的作用是存放全局特性的機(jī)器狀態(tài),控制片內(nèi)cache、fpu和分段、分頁(yè)單元的工作。各個(gè)控制寄存器都是32位。 控制寄存器 系統(tǒng)地址寄存

29、器 系統(tǒng)地址寄存器只在保護(hù)方式下使用,所以又叫保護(hù)方式寄存器。80486用4個(gè)寄存器把在保護(hù)方式下常用的數(shù)據(jù)基地址、界限和其他屬性保存起來(lái),以確保其快速性。 全局描述符表寄存器(gdtr)和局部描述符表寄存器(ldtr)分別用來(lái)存放前述的gdt和ldt的32位線性基地址等內(nèi)容。中斷描述符表寄存器(idtr)用來(lái)存放中斷描述符表的基址和界限。任務(wù)寄存器tr用來(lái)存放任務(wù)狀態(tài)段(tts)的基址、界限和其它屬性。 調(diào)試和測(cè)試寄存器 80486提供了8個(gè)32位的可編程寄存器來(lái)支持調(diào)試功能。它還定義了5個(gè)測(cè)試寄存器,測(cè)試寄存器實(shí)際上并不是80486體系結(jié)構(gòu)的標(biāo)準(zhǔn)部分,只是為了增強(qiáng)系統(tǒng)的可測(cè)性而引入的附加硬

30、件。 浮點(diǎn)寄存器 13個(gè)浮點(diǎn)寄存器,8個(gè)80位浮點(diǎn)數(shù)據(jù)寄存器用作固定寄存器組或硬件堆棧, 1個(gè)16位標(biāo)記字寄存器用來(lái)標(biāo)記每個(gè)數(shù)據(jù)寄存器的內(nèi)容,1個(gè)16位控制寄存器用于提供fpu的若干處理選擇項(xiàng),1個(gè)16位狀態(tài)寄存器用于反映fpu的總狀態(tài),2個(gè)48位的指令、數(shù)據(jù)指針寄存器的作用是為用戶編寫錯(cuò)誤處理程序提供指令、數(shù)據(jù)指針。 80486的fpu中包含有: 三、80486的三種工作方式及相互轉(zhuǎn)換 (1)實(shí)地址方式: 它的工作原理與8086基本相同,主要區(qū)別是80486能借助操作數(shù)長(zhǎng)度前綴,處理32位數(shù)據(jù),且增加了兩個(gè)數(shù)據(jù)段寄存器fs和gs,提高了運(yùn)行速度。(2)保護(hù)虛地址方式:(3)虛擬8086方式:

31、 它引入了虛擬存儲(chǔ)器的概念。cpu可訪問(wèn)的物理存儲(chǔ)空間為4gb,程序可用的虛擬地址空間為64tb。段的長(zhǎng)度在啟動(dòng)頁(yè)功能時(shí)是4gb,不啟動(dòng)頁(yè)功能時(shí)是1mb??芍С侄嘤脩艉蛦斡脩舻亩嗳蝿?wù)操作,并對(duì)各任務(wù)提供了多方面的保護(hù)機(jī)制。 它是一種既有保護(hù)功能又能執(zhí)行8086代碼的工作方式,可以說(shuō)是保護(hù)方式的一種子方式。工作原理與保護(hù)虛擬地址方式下相同,但是程序指定的邏輯地址解釋與8086相同,即可以和實(shí)地址方式下一樣執(zhí)行8086的應(yīng)用程序。8048680486的三種工作方式和相互轉(zhuǎn)換示意圖的三種工作方式和相互轉(zhuǎn)換示意圖 四、80486的外部引腳信號(hào)第三節(jié) pentium 微處理器的體系結(jié)構(gòu) 一、pentiu

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

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

34、。pentium微處理器的預(yù)取緩沖部件內(nèi)包括了指令預(yù)取和指令譯碼兩個(gè)子功能部件。 pentium微處理器采用了預(yù)測(cè)新技術(shù)。為了支持這項(xiàng)新技術(shù),芯片內(nèi)裝備有兩個(gè)預(yù)取緩沖存儲(chǔ)器,一個(gè)是以線性方式來(lái)預(yù)取代碼,另一個(gè)則根據(jù)轉(zhuǎn)移目標(biāo)緩沖存儲(chǔ)器btb預(yù)取代碼。(2)轉(zhuǎn)移預(yù)測(cè)判斷 三、pentium 微處理器的浮點(diǎn)流水線 (1)浮點(diǎn)流水線操作(2)浮點(diǎn)流水線微體系結(jié)構(gòu) pentium浮點(diǎn)流水線由預(yù)取pf、首次譯碼d1、二次譯碼d2、取操作數(shù)、首次執(zhí)行x1、二次執(zhí)行x2、寫浮點(diǎn)數(shù)wf和出錯(cuò)報(bào)告er共8個(gè)操作步驟組成。其中預(yù)取pf和首次譯碼dl這兩個(gè)操作步驟與整數(shù)流水線中的前兩個(gè)操作步驟公用同一硬件資源。 對(duì)“

35、基本”浮點(diǎn)指令來(lái)說(shuō),也允許單周期通過(guò),也就是說(shuō)能以每個(gè)時(shí)鐘執(zhí)行一條指令的速率執(zhí)行。 pentium微處理器的浮點(diǎn)流水線由浮點(diǎn)接口、寄存器組及控制部件firc、浮點(diǎn)指數(shù)功能部件fexp、浮點(diǎn)乘法部件fmul、浮點(diǎn)加法部件fadd、浮點(diǎn)除法部件fdiv以及浮點(diǎn)舍入處理部件pfrnd共7個(gè)部件組成。四、pentium 微處理器的片內(nèi)cache pentium采用了代碼和數(shù)據(jù)各自獨(dú)立的分離式cache 。每一種cache的規(guī)模大小均為8k字節(jié),采用的是二路相聯(lián)的映像技術(shù),每個(gè)cache行大小為32個(gè)字節(jié)。在每一個(gè)cache內(nèi),都裝備有一個(gè)專用的轉(zhuǎn)換旁視緩沖存儲(chǔ)器tlb,用來(lái)快速地將線性地址轉(zhuǎn)換成物理地

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

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

38、微代碼,pentium微處理器就是利用這些微代碼控制各種指令的操作順序。控制rom部件對(duì)v和u兩條指令流水線直接實(shí)施控制功能。 教學(xué)目標(biāo)介紹80486的尋址方式及指令系統(tǒng)。 學(xué)習(xí)要求 通過(guò)本章的學(xué)習(xí),要求熟悉各種尋址方式的使用場(chǎng)合以及常用指令的使用方法。 講授內(nèi)容第三章 80486微處理器指令系統(tǒng) 第三章 80486微處理器指令系統(tǒng) 第一節(jié)80486微處理器尋址方式第二節(jié) 80486微處理器指令系統(tǒng) 第一節(jié)80486微處理器的尋址方式一、操作數(shù)尋址方式 80x86的尋址方式可分為兩類:操作數(shù)的尋址方式和轉(zhuǎn)移地址的尋址方式。 由于操作數(shù)作為指令的操作對(duì)象,可以存儲(chǔ)在存儲(chǔ)器中(稱為存儲(chǔ)器操作數(shù))、

39、寄存在寄存器中(稱為寄存器操作數(shù))或直接包含在指令中(稱為立即數(shù)),因此,與之對(duì)應(yīng)有多種尋址方式。80x86粗略地劃分可有3類10種尋址方式,其中訪問(wèn)存儲(chǔ)器操作數(shù)有8種尋址方式。 (1)立即數(shù)尋址 在這種尋址的方式下,操作數(shù)作為立即數(shù)直接存在指令中,可為8位,16位和32位。例: mov ax,1234h mov bl,78h mov ecx,12345678h 以第一條指令為例的立即以第一條指令為例的立即數(shù)尋址方式的執(zhí)行過(guò)程如圖。數(shù)尋址方式的執(zhí)行過(guò)程如圖。 立即尋址示意圖立即尋址示意圖(2)寄存器尋址在這種方式下,操作數(shù)存放在cpu某個(gè)8位、16位或32 位寄存器中。 例: mov eax,

40、edx inc cl mov ds,ax該尋址方式指令碼短,且無(wú)需從存儲(chǔ)器取操作數(shù),故執(zhí)行速度快(3)直接尋址 在這種方式下,指令中的操作數(shù)部分直接給出了操作數(shù)的有效地址ea,它和操作碼一起放在存儲(chǔ)器的代碼段中,可以是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:sim

41、ov ax,ds:bp16位尋址時(shí),ea可以由si,di,bp或bx提供。(其中bx、bp也稱基址寄存器,si、di稱變址寄存器) 若以si,di,bx間接尋址,則默認(rèn)操作數(shù)在ds段中。若以bp間接尋址,則默認(rèn)操作數(shù)在ss段中 32位尋址時(shí),8個(gè)32位通用寄存器均可作間址寄存器。除esp,ebp默認(rèn)段寄存器為ss外,其余6個(gè)通用寄存器均默認(rèn)段寄存器為ds。mov si,1000hmov ax,si(5)寄存器相對(duì)尋址方式 mov eax,bx+24 ;也可以寫成 mov eax,24bxmov dx ,eax+1500;也可以寫成 mov dx,1500eaxmov dx ,bx+si(6)基

42、址變址尋址方式 (7)相對(duì)基址變址尋址方式 mov dx ,bx+si+24(8)比例變址尋址方式 mov dx ,變址寄存器比例因子+位移量 其中比例因子可以是1,2,4,8中的任一個(gè)數(shù)。除esp外的任何通用寄存器均可作變址寄存器,且ebp默認(rèn)ss作段寄存器,其余以ds作段寄存器。 這種尋址方式只適合于32位尋址的一種情況。(9)基址比例變址尋址方式 mov dx,變址寄存器比例因子+基址寄存器 (10)相對(duì)基址比例變址尋址方式 mov dx,基址寄存器+比例因子變址寄存器+位移量 訪存操作類型訪存操作類型默認(rèn)段寄默認(rèn)段寄存器存器允許超越的段寄存允許超越的段寄存器器偏移地址寄存器偏移地址寄存

43、器取指令代碼取指令代碼cscs無(wú)無(wú)(e)ip(e)ip堆棧操作堆棧操作ssss無(wú)無(wú)(e)sp(e)sp源串?dāng)?shù)據(jù)訪問(wèn)源串?dāng)?shù)據(jù)訪問(wèn)dsdscs, ss ,es fs ,gscs, ss ,es fs ,gs(e)si(e)si目的串?dāng)?shù)據(jù)訪問(wèn)目的串?dāng)?shù)據(jù)訪問(wèn)eses無(wú)無(wú)(e)di(e)di通用數(shù)據(jù)訪問(wèn)通用數(shù)據(jù)訪問(wèn)dsdscs,ss,es,fs,gscs,ss,es,fs,gs偏移地址偏移地址以(以(e e)bpbp、(、(e e)spsp間接尋址的指令間接尋址的指令sssscs,ds,es,fs,gscs,ds,es,fs,gs偏移地址偏移地址存儲(chǔ)器尋址時(shí)的段約定二、轉(zhuǎn)移地址尋址方式 在指令系統(tǒng)中,有

44、一組指令為程序轉(zhuǎn)移指令。程序轉(zhuǎn)移指令的尋址方式涉及如何確定轉(zhuǎn)移的目標(biāo)地址。目標(biāo)地址可以在段內(nèi),也可以在段外。 段內(nèi)直接尋址 轉(zhuǎn)移的目標(biāo)地址是當(dāng)前ip寄存器的內(nèi)容和一個(gè)8位或16位位移量之和。 指令的匯編語(yǔ)言格式表示為: jmp near ptr progrm jmp short ptr outset 段內(nèi)間接尋址 該方式中,轉(zhuǎn)移的目標(biāo)地址是寄存器或存儲(chǔ)單元的內(nèi)容。寄存器或存儲(chǔ)單元的內(nèi)容可以用數(shù)據(jù)尋址方式中除立即數(shù)以外的任何一種尋址方式取得,所得到的內(nèi)容將用來(lái)取代ip寄存器的值。 段內(nèi)間接尋址轉(zhuǎn)移指令的匯編格式可以表示為: jmp cx jmp word ptr bx+tab1 段間直接尋址 這

45、種尋址方式用于段間轉(zhuǎn)移,指令中直接提供了目標(biāo)地址的段基址和偏移地址,所以,只要用指令中指定的偏移地址取代ip寄存器的內(nèi)容,用指令中指定的段基址取代cs寄存器的內(nèi)容就完成了從一個(gè)段到另一個(gè)段的轉(zhuǎn)移操作, 指令的匯編語(yǔ)言格式可表示為: jmp far ptr next 段間間接尋址 該方式下,用存儲(chǔ)器中兩個(gè)相繼字的內(nèi)容來(lái)取代ip和cs寄存器中的原始內(nèi)容,以達(dá)到段間轉(zhuǎn)移的目的。這里,存儲(chǔ)單元的地址是由指令指定除立即數(shù)方式和寄存器方式以外的任何一種數(shù)據(jù)尋址方式取得。 指令的匯編語(yǔ)言格式可表示為: jmp dword ptr rel+bx第二節(jié) 80486微處理器指令系統(tǒng) 80x86的指令系統(tǒng)向上兼容,

46、都是在8086指令的基礎(chǔ)上發(fā)展形成的。與80286相比,增加了32位操作和訪問(wèn)存儲(chǔ)器的32位尋址方式。 80486可以工作在實(shí)模式、保護(hù)模式和虛擬86模式,為了支持系統(tǒng)工作模式,指令系統(tǒng)中設(shè)計(jì)了系統(tǒng)管理指令、保護(hù)模式控制指令以及高級(jí)語(yǔ)言支持指令等等。 80486的基本指令按功能可分為7類:數(shù)據(jù)傳送指令、算術(shù)運(yùn)算指令、邏輯運(yùn)算指令、字符串操作指令、控制轉(zhuǎn)移指令、處理器控制指令和按條件設(shè)置字節(jié)指令。下面分別給予介紹。 完成數(shù)據(jù)的傳送工作,不影響任何標(biāo)志基本傳送指令 mov格式格式: :mov op1mov op1,op2op2目的操作數(shù)目的操作數(shù)源操作數(shù)源操作數(shù)功能功能: :op1 op2op1

47、op2可完成:注意:目的操作數(shù)不能是cs!一 、數(shù)據(jù)傳送指令1)通用數(shù)據(jù)傳送指令:寄存器寄存器 寄存器寄存器寄存器寄存器 存儲(chǔ)器存儲(chǔ)器段寄存器段寄存器 寄存器寄存器段寄存器段寄存器 存儲(chǔ)器存儲(chǔ)器寄存器寄存器 存儲(chǔ)器存儲(chǔ)器立即數(shù)立即數(shù)符號(hào)擴(kuò)展傳送指令movsx格式:movsx op1,op2 ;op1為16位或32位寄存器op2為8位或16位寄存器或存儲(chǔ)器格式:movzx op1,op2 ;op1為16位或32位寄存器op2為8位或16位寄存器或存儲(chǔ)器例如: mov dl,-16 ;dl = f0h movsx bx,dl ;bx = fff0h,而dh,dl不變零擴(kuò)展傳送指令movzx例如:m

48、ovzx eax,cx ;將cx中16位數(shù)高位加0擴(kuò)展為32位送入eax movsx和movzx這兩條指令常被用于作除法時(shí)對(duì)被除數(shù)位數(shù)的擴(kuò)展。交換指令xchg格式格式: :xchg op1xchg op1,op2op2功能功能: :op1 op2op1 op2可完成:例例: :xchg axxchg ax,bxbx ;ax bxax bx寄存器寄存器 寄存器寄存器寄存器寄存器 存儲(chǔ)器存儲(chǔ)器lea傳送指令功能: 將op1所在位置的有效地址(16位或32位) 送往寄存器(16位或32位)。例: lea bx,segptmov bx,offset segptlea reg,op1格式:地址傳送指令等

49、價(jià)等價(jià)指針傳送指令 lds、les、lfs、 lgs、lss格式:lds reg,op1功能:將存儲(chǔ)單元中的內(nèi)容送至目的寄存器和ds(或es、fs、gs、ss)例: segpt dd 12345678h lds si,segpt則指令執(zhí)行后:ds=1234h si=5678h又如: table dd 13572468h les bx,table則指令執(zhí)行后:es=1357h bx=2468h查表轉(zhuǎn)換指令xlat例:將16進(jìn)制數(shù) 0f 轉(zhuǎn)換為與之對(duì)應(yīng)的ascii碼格式:xlat;將(;將(bx+albx+al) alal使用xlat指令的條件: 在數(shù)據(jù)段中建一張?jiān)跀?shù)據(jù)段中建一張asciiasci

50、i碼表碼表 表首地址的偏移量送表首地址的偏移量送bxbx 待轉(zhuǎn)換數(shù)放入待轉(zhuǎn)換數(shù)放入alal中中ac-tab db 0123456789abcdefmov bx,offset ac-tabmov al,sixlat;表首地址的偏移量bx ;取待轉(zhuǎn)換數(shù);轉(zhuǎn)換結(jié)果al字節(jié)交換指令bswap格式: bswap reg32功能: 內(nèi)部各字節(jié)互換 例: mov ebx,77886655h bswap ebx 執(zhí)行后: ebx = 55668877h標(biāo)志寄存器傳送指令lahf/sahf格式: lahf 或 sahflahf 將標(biāo)志寄存器的低字節(jié)ah(低字節(jié)的內(nèi)容是 sf zf af pf cf)sahf 將

51、ah的內(nèi)容標(biāo)志寄存器的低字節(jié)功能:全部通用寄存器內(nèi)容壓棧和彈棧指令 格式:pusha 將所有16位寄存器壓棧,順序?yàn)椋?ax、cx、dx、bx、sp、bp、si、di 格式:pushad 將所有32位寄存器壓棧,順序?yàn)椋篹ax、 ecx、edx、ebx、esp、ebp、esi、edi 格式:popa 格式:popad 將堆棧中的數(shù)據(jù)彈給16位寄存器,順序?yàn)?與壓棧指令相反 將堆棧中的數(shù)據(jù)彈給32位寄存器,順序?yàn)?與壓棧指令相反壓棧/彈棧指令 push/pop 格式:push op1;op1可是16位或32位的寄存器、存儲(chǔ)器 操作數(shù)或立即數(shù)pop op12)堆棧指令如:ax=11h, bx=22

52、h cx=33h, dx=44h si =55h, di =66h sp=80h, bp =84h pusha 執(zhí)行后有: sp00h11hxxh 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?ax、cx、dx、bx、 sp、 bp、si、di 20080h如:ax=11h, bx=22h cx=33h, dx=44h si =55h, di =66h sp=7eh, bp =84h pusha 執(zhí)行后有: sp00h11h33h00hxxh 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?ax、cx、dx、bx、 sp、 bp、si、di 20080h 2007eh如:ax=11h, bx=22h cx=33

53、h, dx=44h si =55h, di =66h sp=7ch, bp =84h pusha 執(zhí)行后有: sp00h11h33h00hxxh00h44h 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?ax、cx、dx、bx、 sp、 bp、si、di 20080h 2007ch如:ax=11h, bx=22h cx=33h, dx=44h si =55h, di =66h sp=7ah, bp =84h pusha 執(zhí)行后有: sp00h11h33h00hxxh00h22h00h44h 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?ax、cx、dx、bx、 sp、 bp、si、di 20080h 2007

54、ah如:ax=11h, bx=22h cx=33h, dx=44h si =55h, di =66h sp=78h, bp =84h pusha 執(zhí)行后有: sp00h11h33h00hxxh00h78h00h22h00h44h 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?ax、cx、dx、bx、 sp、 bp、si、di 20080h 20078h如:ax=11h, bx=22h cx=33h, dx=44h si =55h, di =66h sp=76h, bp =84h pusha 執(zhí)行后有: sp00h11h33h00hxxh00h84h00h78h00h22h00h44h 注意:壓棧的順序

55、為注意:壓棧的順序?yàn)?ax、cx、dx、bx、 sp、 bp、si、di 20080h 20076h如:ax=11h, bx=22h cx=33h, dx=44h si =55h, di =66h sp=74h, bp =84h pusha 執(zhí)行后有: sp00h11h33h00hxxh00h55h00h84h00h78h00h22h00h44h 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?ax、cx、dx、bx、 sp、 bp、si、di 20080h 20074h如:ax=11h, bx=22h cx=33h, dx=44h si =55h, di =66h sp=72h, bp =84h pu

56、sha 執(zhí)行后有: sp00h11h33h00hxxh00h66h00h55h00h84h00h78h00h22h00h44h 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?ax、cx、dx、bx、 sp、 bp、si、di 20080h 20072h如:ax=11h, bx=22h cx=33h, dx=44h si =55h, di =66h sp=70h, bp =84h pusha 執(zhí)行后有: sp00h11h33h00hxxh00h66h00h55h00h84h00h78h00h22h00h44h 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?ax、cx、dx、bx、 sp、 bp、si、di 20

57、080h 20070h 設(shè)堆棧分布如圖: popa執(zhí)行后有: ax= bx= cx= dx= si= di= bp=spxxh00h51h41h00h00h00h00h00h00h00h12h34h56h78h21h31h 21016h 設(shè)堆棧分布如圖: popa執(zhí)行后有: ax= bx= cx= dx= si= di= bp= 0012hsp 21018hxxh00h51h41h00h00h00h00h00h00h00h12h34h56h78h21h31h 21016h 設(shè)堆棧分布如圖: popa執(zhí)行后有: ax= bx= cx= dx= si= di= bp= 0034h 0012hsp

58、2101ahxxh00h51h41h00h00h00h00h00h00h00h12h34h56h78h21h31h 21016h 設(shè)堆棧分布如圖: popa執(zhí)行后有: ax= bx= cx= dx= si= di= bp= 0034h 0012h 0056hsp 2101chxxh00h51h41h00h00h00h00h00h00h00h12h34h56h78h21h31h 21016h 設(shè)堆棧分布如圖: popa執(zhí)行后有: ax= bx= cx= dx= si= di= bp= 0034h 0012h 0056hsp 2101ehxxh00h51h41h00h00h00h00h00h00h

59、00h12h34h56h78h21h31h 21016h 設(shè)堆棧分布如圖: popa執(zhí)行后有: ax= bx= cx= dx= si= di= bp= 0021h 0034h 0012h 0056hsp 21020hxxh00h51h41h00h00h00h00h00h00h00h12h34h56h78h21h31h 21016h 設(shè)堆棧分布如圖: popa執(zhí)行后有: ax= bx= cx= dx= si= di= bp= 0021h 0031h 0034h 0012h 0056hsp 21022hxxh00h51h41h00h00h00h00h00h00h00h12h34h56h78h21h

60、31h 21016h 設(shè)堆棧分布如圖: popa執(zhí)行后有: ax= bx= cx= dx= si= di= bp= 0021h 0041h 0031h 0034h 0012h 0056hsp 21024hxxh00h51h41h00h00h00h00h00h00h00h12h34h56h78h21h31h 21016h 設(shè)堆棧分布如圖: popa執(zhí)行后有: ax= bx= cx= dx= si= di= bp= 0051h 0021h 0041h 0031h 0034h 0012h 0056hsp 21026hxxh00h51h41h00h00h00h00h00h00h00h12h34h56h

溫馨提示

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

評(píng)論

0/150

提交評(píng)論