計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture_第1頁(yè)
計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture_第2頁(yè)
計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture_第3頁(yè)
計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture_第4頁(yè)
計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture_第5頁(yè)
已閱讀5頁(yè),還剩64頁(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ī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture2目錄目錄5.1 5.1 處理器的外特性處理器的外特性5.2 5.2 指令的時(shí)序指令的時(shí)序5.3 5.3 控制器設(shè)計(jì)控制器設(shè)計(jì)計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture35.1 5.1 處理器的外特性處理器的外特性指令系統(tǒng)指令系統(tǒng)5.1.1 5.1.1 機(jī)器語(yǔ)言與匯編語(yǔ)言機(jī)器語(yǔ)言與匯編語(yǔ)言 1.1.指令系統(tǒng)與匯編語(yǔ)言指令系統(tǒng)與匯編語(yǔ)言 (1)(1)指令系統(tǒng)是指令系統(tǒng)是CPUCPU外

2、特性的表述外特性的表述 CPUCPU是表現(xiàn)為用戶可使用的一些指令是表現(xiàn)為用戶可使用的一些指令, ,用戶看到的用戶看到的CPUCPU就是就是指令系統(tǒng)指令系統(tǒng). .是一個(gè)人機(jī)界面是一個(gè)人機(jī)界面. . (2)(2)機(jī)器語(yǔ)言機(jī)器語(yǔ)言: :是與機(jī)器結(jié)構(gòu)關(guān)系密切是與機(jī)器結(jié)構(gòu)關(guān)系密切, ,由指令系統(tǒng)表述的由指令系統(tǒng)表述的語(yǔ)言語(yǔ)言. . 機(jī)器語(yǔ)言是機(jī)器語(yǔ)言是0,10,1碼語(yǔ)言碼語(yǔ)言, ,即用即用0,10,1碼描述的語(yǔ)言碼描述的語(yǔ)言, ,缺點(diǎn)上難讀缺點(diǎn)上難讀, ,難記難記, ,難查錯(cuò)難查錯(cuò), ,不利推廣不利推廣. . (3)(3)系列系列CPUCPU芯片芯片: :指基本體系結(jié)構(gòu)相同的指基本體系結(jié)構(gòu)相同的CPUC

3、PU芯片芯片. .它們的它們的基本指令集是相同的基本指令集是相同的. .指令系統(tǒng)是向上兼容的指令系統(tǒng)是向上兼容的, ,低檔低檔CPUCPU上上運(yùn)行的軟件可在高檔運(yùn)行的軟件可在高檔CPUCPU上運(yùn)行上運(yùn)行. .如如Intel 80X86Intel 80X86系列系列CPUCPU芯芯片片. .計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture42.2.符號(hào)語(yǔ)言與匯編語(yǔ)言符號(hào)語(yǔ)言與匯編語(yǔ)言 機(jī)器語(yǔ)言機(jī)器語(yǔ)言: :即即0,10,1語(yǔ)言語(yǔ)言. (mnenonic). (mnenonic) 符號(hào)語(yǔ)言符號(hào)語(yǔ)言: :用助記符號(hào)代替用用助記符號(hào)代替用0,10,1碼描述的機(jī)器指

4、令系統(tǒng)碼描述的機(jī)器指令系統(tǒng). . 匯編語(yǔ)言匯編語(yǔ)言: :是一種符號(hào)語(yǔ)言是一種符號(hào)語(yǔ)言, ,用助記符形式描述指令用助記符形式描述指令. . 指令語(yǔ)句指令語(yǔ)句: :在匯編語(yǔ)言程序中在匯編語(yǔ)言程序中, ,每條指令被稱為一條指令語(yǔ)每條指令被稱為一條指令語(yǔ)句句. . 指示語(yǔ)句指示語(yǔ)句: :也叫偽指令也叫偽指令, ,它不產(chǎn)生實(shí)質(zhì)性運(yùn)算操作它不產(chǎn)生實(shí)質(zhì)性運(yùn)算操作, ,只向匯編只向匯編器發(fā)始器發(fā)始, ,停等命令或內(nèi)存安排等工作停等命令或內(nèi)存安排等工作. . 指令的語(yǔ)法詳見節(jié)指令的語(yǔ)法詳見節(jié). .計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture5指令的語(yǔ)法指令的語(yǔ)法 指令是

5、程序人員和計(jì)算機(jī)交往的最基本的界面指令是程序人員和計(jì)算機(jī)交往的最基本的界面, ,是人們指是人們指示計(jì)算機(jī)示計(jì)算機(jī)( (能被計(jì)算機(jī)識(shí)別能被計(jì)算機(jī)識(shí)別) )執(zhí)行各種基本操作的命令執(zhí)行各種基本操作的命令. . 1.1.指令的語(yǔ)法指令的語(yǔ)法: : (1)(1)含義含義: :規(guī)定了指令的表示格式規(guī)定了指令的表示格式, ,或是構(gòu)成指令的規(guī)則或是構(gòu)成指令的規(guī)則. . (2)(2)典型指令的組成典型指令的組成: : 必備必備 可有可無(wú)可有可無(wú), ,可多可少可多可少 OP CODE + nOP CODE + n個(gè)地址個(gè)地址 操作碼操作碼 地址域地址域 OPOP碼的位數(shù)碼的位數(shù) 操作類型操作類型( (指令條數(shù)指令

6、條數(shù)),2),27 7=128=128條條 操作數(shù)地址的位數(shù)操作數(shù)地址的位數(shù) 能訪問(wèn)的最大存儲(chǔ)空間能訪問(wèn)的最大存儲(chǔ)空間 (AD1)OP(AD2) (AD1)OP(AD2) AD3AD3 源源1 1 源源2 2 目標(biāo)目標(biāo) 注注: :下條指令地址在轉(zhuǎn)移類指令中出現(xiàn)下條指令地址在轉(zhuǎn)移類指令中出現(xiàn), , 正常情況由正常情況由PCPC確定確定. .OPcode+地址碼OPAD1 AD2 . ADnOPAD1 AD2 AD3計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture62.2.符號(hào)語(yǔ)言與匯編語(yǔ)符號(hào)語(yǔ)言與匯編語(yǔ)(Assemble) 以以8086為例為例,介紹匯編語(yǔ)言

7、中的幾個(gè)概念介紹匯編語(yǔ)言中的幾個(gè)概念. (1)數(shù)據(jù)類型數(shù)據(jù)類型: 數(shù)值數(shù)據(jù)數(shù)值數(shù)據(jù):8086:8086匯編語(yǔ)言允許使用以下數(shù)值數(shù)據(jù)匯編語(yǔ)言允許使用以下數(shù)值數(shù)據(jù) 二進(jìn)制數(shù)據(jù)二進(jìn)制數(shù)據(jù):后綴后綴B. 如如10101110B 十進(jìn)制數(shù)據(jù)十進(jìn)制數(shù)據(jù):后綴后綴D,如如235D. 八進(jìn)制數(shù)據(jù)八進(jìn)制數(shù)據(jù):后綴后綴Q,如如235Q. 十六進(jìn)制數(shù)據(jù)十六進(jìn)制數(shù)據(jù):后綴后綴H,如如ABC2H. 字符串變量字符串變量:ASCII,例例A. (2)(2)運(yùn)算符運(yùn)算符: : 算術(shù)運(yùn)算符算術(shù)運(yùn)算符:+, , , . 邏輯運(yùn)算邏輯運(yùn)算符符:AND(與與),OR(或或),NOT(非非) 關(guān)系運(yùn)算符關(guān)系運(yùn)算符:EQ,NE,LT,

8、GT,LE,GE. (3)(3)操作碼操作碼:ADD,SUB,MUL,DIV:ADD,SUB,MUL,DIV等等. . (4)(4)地址碼地址碼: :可用十六進(jìn)制可用十六進(jìn)制, ,十進(jìn)制十進(jìn)制, ,寄存器名或存儲(chǔ)器地寄存器名或存儲(chǔ)器地址名表示址名表示. . 例例:MOV AX,2000H, MOV AX,BX:MOV AX,2000H, MOV AX,BX (5)(5)標(biāo)號(hào)和注釋標(biāo)號(hào)和注釋: :標(biāo)號(hào)標(biāo)號(hào): :作為轉(zhuǎn)移指令的目標(biāo)標(biāo)記作為轉(zhuǎn)移指令的目標(biāo)標(biāo)記 注釋注釋: :向閱讀程序的人提供說(shuō)明向閱讀程序的人提供說(shuō)明. .計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitec

9、ture7(6)(6)匯編語(yǔ)言指令的一般形式匯編語(yǔ)言指令的一般形式 例例:A1:MOV AX,5 ;:A1:MOV AX,5 ;把常數(shù)把常數(shù)5 5傳送到寄存器傳送到寄存器AXAX中中. . 用用80868086匯編語(yǔ)言描述的計(jì)算匯編語(yǔ)言描述的計(jì)算A=2+3A=2+3的程序的程序 ORG 0C0H; 0C0H作為程序起始地址作為程序起始地址. START:MOV AX,2; 2 AX,AXAX,AX是累加器是累加器,START,START是標(biāo)是標(biāo)號(hào)號(hào) ADD AX,3 ; 3+(AX) AX HLT ;暫停暫停 END START; 結(jié)束匯編結(jié)束匯編標(biāo)號(hào)名操作碼操作數(shù);注釋,計(jì)算機(jī)組成與結(jié)構(gòu)Co

10、mputerOrganizationandArchitecture8(7)(7)匯編程序匯編程序 匯編匯編: :源程序源程序 目標(biāo)程序目標(biāo)程序( (機(jī)器語(yǔ)言程序機(jī)器語(yǔ)言程序) ) 匯編過(guò)程匯編過(guò)程: : 編輯階段編輯階段:源程序源程序 匯編階段匯編階段:目標(biāo)文件目標(biāo)文件XXX.OBJ;操作碼變?yōu)闄C(jī)器碼操作碼變?yōu)闄C(jī)器碼,但地址浮動(dòng)但地址浮動(dòng),不能執(zhí)行不能執(zhí)行 運(yùn)行階段運(yùn)行階段:可執(zhí)行文件可執(zhí)行文件XXX.EXE; LINK后后,由目標(biāo)文件變成可執(zhí)行文件由目標(biāo)文件變成可執(zhí)行文件匯編程序翻譯連接匯編執(zhí)行源程序.ASM目標(biāo)程序.OBJ可執(zhí)行程序.EXE運(yùn)行結(jié)果匯編程序MASM連接程序LINKDOS環(huán)境

11、下匯編語(yǔ)言程序的匯編過(guò)程計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture95.1.2 5.1.2 尋址方式尋址方式(Addressing Mode)(Addressing Mode) 尋址方式尋址方式: :是尋找操作數(shù)在主存中存放的真實(shí)地址是尋找操作數(shù)在主存中存放的真實(shí)地址. . 1.1.概念概念:(1):(1)形式地址形式地址(formal address):(formal address):是指令中給出的是指令中給出的操作數(shù)地址操作數(shù)地址, ,往往不是操作數(shù)的真實(shí)存儲(chǔ)器地址往往不是操作數(shù)的真實(shí)存儲(chǔ)器地址. . (2)(2)有效地址有效地址(EA-eff

12、ective address):(EA-effective address):是操作數(shù)的真實(shí)存是操作數(shù)的真實(shí)存儲(chǔ)器地址儲(chǔ)器地址. . (3)(3)尋址尋址: :形式地址形式地址 有效地址有效地址 (4)(4)指令中操作數(shù)的指令中操作數(shù)的4 4個(gè)來(lái)源個(gè)來(lái)源( (或或4 4種尋址方式種尋址方式) ) 立即尋址立即尋址: :操作數(shù)在指令中操作數(shù)在指令中, ,立等可取立等可取. . 例例:MOV AX, 5 ADD AX, 1234H 寄存器尋址寄存器尋址: :操作數(shù)在操作數(shù)在CPUCPU某寄存器某寄存器( (通用或段寄存器中通用或段寄存器中),),例例ADD AX, BXADD AX, BX 存儲(chǔ)器

13、尋址存儲(chǔ)器尋址: :操作數(shù)在內(nèi)存某單元中操作數(shù)在內(nèi)存某單元中, ,例例MOVMOV AX,2000HAX,2000H I/OI/O尋址尋址: :操作數(shù)通過(guò)操作數(shù)通過(guò)I/OI/O端口獲得端口獲得, ,有二種方法有二種方法尋址尋址方式地址碼指令地址碼部分計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture105.1.2 5.1.2 尋址方式尋址方式(Addressing Mode)(Addressing Mode) A.A.獨(dú)立的獨(dú)立的I/OI/O地址地址:I/O:I/O端口地址是專用的端口地址是專用的, ,例例OUT 50H,ALOUT 50H,AL或或IN A

14、L,50HIN AL,50H等等.Intel80X86.Intel80X86系列用此方法系列用此方法. . B.B.與內(nèi)存地址統(tǒng)一編址與內(nèi)存地址統(tǒng)一編址:I/O:I/O地址與內(nèi)存地址一樣看待地址與內(nèi)存地址一樣看待. . 2.2.常用尋址方式常用尋址方式: : 介紹之前介紹之前, ,先了解一下先了解一下8086CPU8086CPU的內(nèi)部結(jié)構(gòu)圖的內(nèi)部結(jié)構(gòu)圖. . (1)(1)通用寄存器通用寄存器: :視其用途分成二類視其用途分成二類 AX(AH/AL):Accumulator,AX(AH/AL):Accumulator,作累加器用作累加器用. . BX(BH/BL):Base,BX(BH/BL):

15、Base,基址寄存器基址寄存器, ,在涉及基地址尋址方式中在涉及基地址尋址方式中, ,用作基址寄存器用作基址寄存器. . CX(CH/CL):Counter.CX(CH/CL):Counter.在循環(huán)指令和串操作指令中在循環(huán)指令和串操作指令中, ,用作隱用作隱含的計(jì)數(shù)器含的計(jì)數(shù)器. . , , 運(yùn)算時(shí)專用運(yùn)算時(shí)專用,DX,DX指定用于存放指定用于存放I/OI/O端口地址端口地址. .計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture115.1.2 5.1.2 尋址方式尋址方式(Addressing Mode)(Addressing Mode) 指針寄存器及變

16、址寄存器指針寄存器及變址寄存器:4 4個(gè)個(gè)1616位寄存器位寄存器, ,不能分成字節(jié)不能分成字節(jié) SP(Stack Pointer):堆棧指針寄存器堆棧指針寄存器,用于指示棧頂?shù)钠频刂酚糜谥甘緱m數(shù)钠频刂? BP(Base Pointer):基址指針寄存器基址指針寄存器,SS和和BP連用連用,可作為堆棧區(qū)中的可作為堆棧區(qū)中的1個(gè)基地址個(gè)基地址,以相對(duì)方式訪問(wèn)堆棧中的存儲(chǔ)單元以相對(duì)方式訪問(wèn)堆棧中的存儲(chǔ)單元. SI(Sourse Index):源變址寄存器源變址寄存器,SI與與DS連用連用,確定確定DS段中某一存段中某一存儲(chǔ)單元地址儲(chǔ)單元地址,SI有自動(dòng)增量有自動(dòng)增量(DF=0)和自動(dòng)減量和自

17、動(dòng)減量(DF=1)的變址功能的變址功能,在在串處理指令中串處理指令中,SI作為隱含的源變址寄存器作為隱含的源變址寄存器. DI(Destination Index):目的變址寄存器目的變址寄存器,DI與與DS,ES連用連用,確定確定DS,ES段中某一存儲(chǔ)單元地址段中某一存儲(chǔ)單元地址,SI有自動(dòng)增量有自動(dòng)增量(DF=0)和自動(dòng)減量和自動(dòng)減量(DF=1)的變址功能的變址功能,在串處理指令中在串處理指令中,SI作為隱含的目標(biāo)變址寄存器作為隱含的目標(biāo)變址寄存器. (2)段寄存器段寄存器:PC機(jī)把存儲(chǔ)器劃分為若干段機(jī)把存儲(chǔ)器劃分為若干段,匯編程序把要運(yùn)行的程序匯編程序把要運(yùn)行的程序,數(shù)據(jù)數(shù)據(jù),堆棧分別放

18、在不同的存儲(chǔ)器段堆棧分別放在不同的存儲(chǔ)器段(segment) 中中,每個(gè)存儲(chǔ)單元由每個(gè)存儲(chǔ)單元由2個(gè)個(gè)因素決定因素決定: 段基址段基址:是該存儲(chǔ)單元所有段的段首地址是該存儲(chǔ)單元所有段的段首地址. 段內(nèi)偏移地址段內(nèi)偏移地址:該單元與所在段基址間以字節(jié)數(shù)計(jì)算的距離該單元與所在段基址間以字節(jié)數(shù)計(jì)算的距離.計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture125.1.2 5.1.2 尋址方式尋址方式(Addressing Mode)(Addressing Mode) CSCS代碼段寄存器代碼段寄存器: :只能存放程序段的首址只能存放程序段的首址. . DSDS數(shù)據(jù)段

19、寄存器數(shù)據(jù)段寄存器: :只能存放數(shù)據(jù)段的首址只能存放數(shù)據(jù)段的首址. . ESES附加數(shù)據(jù)段寄存器附加數(shù)據(jù)段寄存器: :只能存放數(shù)據(jù)段的首址只能存放數(shù)據(jù)段的首址. . SSSS堆棧段寄存器堆棧段寄存器: :只能存放堆棧段的首址只能存放堆棧段的首址. . 注意注意: :主存分成多少存儲(chǔ)段是任意的主存分成多少存儲(chǔ)段是任意的, ,但把由但把由CS,DS,ES,SSCS,DS,ES,SS指明的段稱當(dāng)前段指明的段稱當(dāng)前段. .在程序運(yùn)行的任何時(shí)刻在程序運(yùn)行的任何時(shí)刻, ,主存最多只能主存最多只能有有4個(gè)當(dāng)前段個(gè)當(dāng)前段. 15 0 IP (3)(3)控制寄存器控制寄存器:2個(gè)個(gè),即指令指針即指令指針I(yè)P和標(biāo)

20、志寄存器和標(biāo)志寄存器FR. IP(指令指針指令指針):用于指示程序運(yùn)行至何處用于指示程序運(yùn)行至何處,IP不能用指令去取出或?qū)Σ荒苡弥噶钊ト〕龌驅(qū)λx值它賦值,但可通過(guò)執(zhí)行轉(zhuǎn)移指令把轉(zhuǎn)移地址的段內(nèi)偏移地址裝入但可通過(guò)執(zhí)行轉(zhuǎn)移指令把轉(zhuǎn)移地址的段內(nèi)偏移地址裝入IP. FR(標(biāo)志寄存器標(biāo)志寄存器):體現(xiàn)了體現(xiàn)了CPU的當(dāng)前狀態(tài)和某些控制位的當(dāng)前狀態(tài)和某些控制位,其中其中: 6位是狀態(tài)標(biāo)志位位是狀態(tài)標(biāo)志位:CF,PF,AF,ZF,SF,DF.反映算術(shù)反映算術(shù),邏輯指令執(zhí)行后邏輯指令執(zhí)行后的某些狀態(tài)特征的某些狀態(tài)特征. 3位是控制標(biāo)志位位是控制標(biāo)志位:TF,IF,DF,體現(xiàn)體現(xiàn)CPU的控制的控制.O D

21、I T S ZAPC計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture135.1.2 5.1.2 尋址方式尋址方式(Addressing Mode)(Addressing Mode) 1.1.立即尋址立即尋址(immediate addressing):(immediate addressing): (1)(1)特點(diǎn)特點(diǎn): :操作數(shù)直接在指令代碼中給出操作數(shù)直接在指令代碼中給出, ,是指令代碼的一是指令代碼的一部分立即可取部分立即可取. .不必訪問(wèn)內(nèi)存不必訪問(wèn)內(nèi)存, ,速度快速度快. . (2)(2)舉例舉例: :ADD AX,3165H ; AX+3165

22、H AX 見圖見圖5.1. 2.2.寄存器直接尋址寄存器直接尋址(register direct addressing): 即操作數(shù)包含在即操作數(shù)包含在CPUCPU的寄存器中的寄存器中. .按寄存器代號(hào)對(duì)它讀寫按寄存器代號(hào)對(duì)它讀寫. . (1)(1)寄存器組的作用寄存器組的作用: :保存運(yùn)算中間結(jié)果和某些最終結(jié)果保存運(yùn)算中間結(jié)果和某些最終結(jié)果. .避免多次訪避免多次訪問(wèn)慢速的內(nèi)存問(wèn)慢速的內(nèi)存. (2). (2)特點(diǎn)特點(diǎn): :指令字長(zhǎng)短指令字長(zhǎng)短, ,指令執(zhí)行速度快指令執(zhí)行速度快. . (3)(3)舉例舉例:MOV AX,BX; BX AX 5 5 3.3.存儲(chǔ)器直接尋址存儲(chǔ)器直接尋址: (me

23、mory direct : (memory direct addressing):addressing): (1)(1)特點(diǎn)特點(diǎn): :操作數(shù)的有效地址操作數(shù)的有效地址(EA)(EA)直接包含在指令中直接包含在指令中. . 即把操作數(shù)的地址直接作為指令中的地址碼即把操作數(shù)的地址直接作為指令中的地址碼. . (2)(2)舉例舉例:MOV AX,3056H;:MOV AX,3056H;見圖見圖5.3,5.3,即即3056H=A3CEH AX3056H=A3CEH AX (3)(3)缺點(diǎn)缺點(diǎn): :不靈活不靈活, ,受指令長(zhǎng)度限制受指令長(zhǎng)度限制, ,尋址范圍有限尋址范圍有限. .BXAX計(jì)算機(jī)組成與結(jié)構(gòu)

24、ComputerOrganizationandArchitecture145.1.2 5.1.2 尋址方式尋址方式(Addressing Mode)(Addressing Mode) 4.4.存儲(chǔ)器間接尋址存儲(chǔ)器間接尋址(in(indirect direct addressing): addressing): (1)(1)特點(diǎn)特點(diǎn): :由地址碼中從存儲(chǔ)器中取出的不是操作數(shù)由地址碼中從存儲(chǔ)器中取出的不是操作數(shù), ,而是而是操作數(shù)的地址操作數(shù)的地址, ,再以該地址訪問(wèn)一次內(nèi)存取出的數(shù)才是操再以該地址訪問(wèn)一次內(nèi)存取出的數(shù)才是操作數(shù)作數(shù). .即要訪問(wèn)兩次內(nèi)存即要訪問(wèn)兩次內(nèi)存. . 存放操作數(shù)地址的寄存

25、器存放操作數(shù)地址的寄存器(8086中用中用)或主存單元叫間址器或地址指針或主存單元叫間址器或地址指針. (2)(2)舉例舉例:,:,以圖為例以圖為例, ,其尋址過(guò)程為其尋址過(guò)程為: : 0B58H=1A3CH(是地址是地址) 1A3CH=2B5DH AX (2B5DH) (3)(3)間址器間址器( (地址指針地址指針):):猶如一個(gè)猶如一個(gè)“地址尋問(wèn)處地址尋問(wèn)處”, ,只要改只要改變它的內(nèi)容變它的內(nèi)容, ,不改變指令就能訪問(wèn)到不同的操作數(shù)不改變指令就能訪問(wèn)到不同的操作數(shù). .全部字全部字長(zhǎng)都可用于存放操作數(shù)地址長(zhǎng)都可用于存放操作數(shù)地址, ,能擴(kuò)大尋址范圍能擴(kuò)大尋址范圍. .但要多次訪但要多次訪

26、存存, ,降低指令執(zhí)行速度降低指令執(zhí)行速度. .為解決速度問(wèn)題為解決速度問(wèn)題, ,常用寄存器作間常用寄存器作間址器址器.8086.8086中的間接尋址是寄存器間接尋址中的間接尋址是寄存器間接尋址, ,規(guī)定用規(guī)定用 BX,BP,SI,DIBX,BP,SI,DI作地址指針作地址指針. .計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture155.1.2 5.1.2 尋址方式尋址方式(Addressing Mode)(Addressing Mode) (4) (4)寄存器間接尋址寄存器間接尋址:此時(shí)的間址器用寄存器此時(shí)的間址器用寄存器.在在8086中中,規(guī)定用規(guī)定用

27、BX,BP,SI,DI作地址指針作地址指針,則操作數(shù)的物理地址為則操作數(shù)的物理地址為: (BX) PA=16*(DS)+ (S I) 或或 16*(SS)+(BP), (DI) 5.5.變址變址(index)/ (index)/ 基址尋址基址尋址: : (1)(1)變址尋址的設(shè)計(jì)思想變址尋址的設(shè)計(jì)思想: :因指令中地址碼位數(shù)有限因指令中地址碼位數(shù)有限,為擴(kuò)大訪存為擴(kuò)大訪存容量容量,設(shè)置一變址器設(shè)置一變址器,用變址器內(nèi)容用變址器內(nèi)容(偏移量偏移量)與指令中的地址碼與指令中的地址碼(基準(zhǔn)基準(zhǔn)量量)相加相加,形成操作數(shù)有效地址形成操作數(shù)有效地址EA.操作數(shù)操作數(shù)EA的位數(shù)取決于相加的位數(shù)取決于相加2

28、個(gè)數(shù)個(gè)數(shù)中的位數(shù)最長(zhǎng)的數(shù)中的位數(shù)最長(zhǎng)的數(shù).一般用寄存器作為變址器一般用寄存器作為變址器,速度快速度快. 8086中中,用用2個(gè)變址寄存器個(gè)變址寄存器,其中其中SI為源變址寄存器為源變址寄存器,DI為目的變址寄為目的變址寄存器存器.如如MOV CL,SI-100H. (2)(2)基址尋址的設(shè)計(jì)思想基址尋址的設(shè)計(jì)思想: :在多用戶計(jì)算機(jī)中在多用戶計(jì)算機(jī)中, ,為每一用戶分配一為每一用戶分配一存儲(chǔ)空間存儲(chǔ)空間, ,每用戶按各自的邏輯地址編程每用戶按各自的邏輯地址編程. .當(dāng)程序裝入機(jī)器運(yùn)行時(shí)當(dāng)程序裝入機(jī)器運(yùn)行時(shí), ,為為每一用戶指定一基地址每一用戶指定一基地址, ,用戶程序的實(shí)際存放地址為基地址與其

29、邏輯用戶程序的實(shí)際存放地址為基地址與其邏輯地址之和地址之和, ,不同的用戶使用不同的基地址不同的用戶使用不同的基地址, ,占用不同的存儲(chǔ)空間占用不同的存儲(chǔ)空間. .如MOV AX,SI,即SI中存的是操作數(shù)的地址,而不是操作數(shù).方括號(hào)是間址方式的一種表示.計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture165.1.2 5.1.2 尋址方式尋址方式(Addressing Mode)(Addressing Mode) 基址尋址基址尋址: :與變址尋址相反與變址尋址相反, ,基址寄存器提供基準(zhǔn)值基址寄存器提供基準(zhǔn)值, ,由指由指令提供偏移量令提供偏移量.8086

30、.8086中中, ,用用BXBX或或BPBP作為作為2 2個(gè)基址指針個(gè)基址指針. . 如如MOV AL,BX+10H;BXMOV AL,BX+10H;BX是基址指針是基址指針,10H,10H為偏移地址為偏移地址. 兩者的異同兩者的異同: : A.A.都能擴(kuò)充尋址范圍都能擴(kuò)充尋址范圍. . B.B.變址尋址主要用于處理數(shù)組變址尋址主要用于處理數(shù)組, , 一般把數(shù)組的首址放在一般把數(shù)組的首址放在變址寄存器中變址寄存器中, ,不斷改變變址寄存器的內(nèi)容不斷改變變址寄存器的內(nèi)容, ,很易形成數(shù)很易形成數(shù)組中任一數(shù)據(jù)的地址組中任一數(shù)據(jù)的地址, ,適合編循環(huán)程序適合編循環(huán)程序. . C.C.基址尋址基址尋址

31、: :支持多用戶程序編程支持多用戶程序編程, ,只需把某道程序的裝只需把某道程序的裝入地址放在基址寄存器中入地址放在基址寄存器中, ,程序員在編程時(shí)用的邏輯地址程序員在編程時(shí)用的邏輯地址將通過(guò)基址尋址向物理地址轉(zhuǎn)換將通過(guò)基址尋址向物理地址轉(zhuǎn)換. . 基址和變址尋址方式基址和變址尋址方式: :是基址和變址尋址方式的結(jié)合是基址和變址尋址方式的結(jié)合. .如如80868086指令指令MOV AX,BX+SI+3BH.MOV AX,BX+SI+3BH.計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture17變址尋址的舉例變址尋址的舉例 例例:求求1,2,3,.,10的平

32、均值的平均值 1.用直接尋址用直接尋址: 2.用變用變址尋址址尋址 MOV AL,0 MOV AL,0 MOV AL,2000 MOV SI,0 ADD AL,2001 MOV CX,000A ADD AL,2002 A1:ADD AL,SI+2000 ADD AL,2003 INC SI ADD AL,2004 LOOP A1 ADD AL,2005 MOV BL,0A ADD AL,2006 DIV BL ADD AL,2007 INT 3 ADD AL,2008 ADD AL,2009 MOV BL,0A DIV BL INT 3結(jié)論:用變址尋址,可使程序簡(jiǎn)潔,當(dāng)被求值的個(gè)數(shù)變大時(shí),此優(yōu)

33、點(diǎn)愈加明顯.注:1,2,3,.,10分別放在內(nèi)存20002009單元中.計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture186.6.堆棧堆棧(stack)(stack)尋址尋址 (1)堆棧堆棧:可由一片內(nèi)存區(qū)域或可由一片內(nèi)存區(qū)域或CPU寄存器組成寄存器組成. (2)三要素三要素:堆底堆底(固定固定),棧頂棧頂(活動(dòng)端活動(dòng)端),棧頂指針棧頂指針(指示當(dāng)前棧頂位置指示當(dāng)前棧頂位置). (3)存儲(chǔ)機(jī)理存儲(chǔ)機(jī)理:后進(jìn)先出后進(jìn)先出(LIFO) (4)操作操作:壓壓(進(jìn)進(jìn))棧棧, 彈彈(出出)棧棧 (5)用途用途:用于子程序調(diào)用用于子程序調(diào)用,遞歸調(diào)用等的斷點(diǎn)保護(hù)和現(xiàn)

34、場(chǎng)保護(hù)遞歸調(diào)用等的斷點(diǎn)保護(hù)和現(xiàn)場(chǎng)保護(hù). (6)舉例舉例: 3100:SUBR1 SUBR2 3010: . 3111: . 3011:CALL SUBR1 3112: CALL SUBR2 3012: . 3113: . RET RET 3012301231133012SPSPSPSPSP堆棧初始化 CALL SUBR1 CALL SUBR2SUBR2中的RETSUBR1中的RET首次壓棧壓棧計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture196.6.堆棧堆棧(stack)(stack)尋址尋址 (6)8086(6)8086的堆棧的堆棧 A.A.位置位置:

35、 :當(dāng)前堆棧段設(shè)在當(dāng)前堆棧段設(shè)在SSSS段內(nèi)段內(nèi), ,始址由始址由SSSS指示指示, ,棧頂指針棧頂指針由由SPSP擔(dān)任擔(dān)任. .可用指令可用指令MOV SP,imMOV SP,im對(duì)堆棧初始化對(duì)堆棧初始化. . B.B.最大空間最大空間:64KB:64KB C.C.進(jìn)進(jìn)/ /出棧操作出棧操作: : 進(jìn)棧指令進(jìn)棧指令:PUSH :PUSH 源操作數(shù)源操作數(shù) 操作操作: :先減指針先減指針SP-2 SP,SP-2 SP,后壓數(shù)后壓數(shù) 字字 (SP-1,SP-2)(SP-1,SP-2) 彈棧指令彈棧指令:POP :POP 目的操作數(shù)目的操作數(shù) 操作操作: :先彈數(shù)先彈數(shù) (SP,SP+1) (SP

36、,SP+1) 目的地址目的地址 后加指針后加指針 SP+2 SPSP+2 SP D.D.舉例舉例:push ds ;暫存暫存 push cs ;暫存暫存CS pop ds ;傳傳CS DS, 使使CS=DS push si+06h; 存儲(chǔ)單元內(nèi)容進(jìn)棧存儲(chǔ)單元內(nèi)容進(jìn)棧計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture20的段尋址的段尋址 段尋址實(shí)質(zhì)上是基址尋址段尋址實(shí)質(zhì)上是基址尋址, ,一般用于微機(jī)中一般用于微機(jī)中, ,例例8086.8086. (1)(1)分段技術(shù)分段技術(shù): :內(nèi)存地址位數(shù)內(nèi)存地址位數(shù)2020位位,2,22020=1M, =1M, 而地址寄存

37、器只而地址寄存器只有有1616位位,2,21616=64K.=64K.采用分段技術(shù)可解決此矛盾采用分段技術(shù)可解決此矛盾. . (2)設(shè)置設(shè)置4 4個(gè)段寄存器個(gè)段寄存器:CS,DS,SS,ES(:CS,DS,SS,ES(均為均為1616位位),),它們只保存它們只保存各段的首地址各段的首地址( (必須能被必須能被1616整除整除),),即段基址即段基址. . 再給出基于某段首地址的偏移量再給出基于某段首地址的偏移量, ,即某存儲(chǔ)單元與它所在即某存儲(chǔ)單元與它所在段的段基址之間的相對(duì)字節(jié)數(shù)段的段基址之間的相對(duì)字節(jié)數(shù). . 尋址某存儲(chǔ)單元尋址某存儲(chǔ)單元: : (BP,SP,S I,DI) 由段基址由段

38、基址+某些寄存器提供的某些寄存器提供的16位偏移量位偏移量 20位位的物理地址的物理地址 (2)(2)物理地址的形成過(guò)程物理地址的形成過(guò)程: : 16*段基址段基址+段內(nèi)偏移地址段內(nèi)偏移地址(16位位) (20位位) 20位物理地址位物理地址16位段基址 16位段內(nèi)偏移地址20位物理地址015150019+左移4位計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture215.1.3 CPU5.1.3 CPU中的可編程寄存器中的可編程寄存器 寄存器是計(jì)算機(jī)系統(tǒng)中最高級(jí)別的存儲(chǔ)器寄存器是計(jì)算機(jī)系統(tǒng)中最高級(jí)別的存儲(chǔ)器,速度與速度與CPU匹配匹配. 可編程寄存器可編程寄

39、存器:應(yīng)用程序可訪問(wèn)應(yīng)用程序可訪問(wèn) 系統(tǒng)級(jí)寄存器系統(tǒng)級(jí)寄存器:特權(quán)指令能訪問(wèn)特權(quán)指令能訪問(wèn) 調(diào)試調(diào)試/測(cè)試寄存器測(cè)試寄存器:特權(quán)指令能訪問(wèn)特權(quán)指令能訪問(wèn) 80X8680X86及奔騰處理器提供的可編程寄存器分及奔騰處理器提供的可編程寄存器分4 4類類: : 1.1.數(shù)據(jù)寄存器數(shù)據(jù)寄存器: :共共4 4個(gè)個(gè), ,用來(lái)存放計(jì)算過(guò)程中用到的操作數(shù)用來(lái)存放計(jì)算過(guò)程中用到的操作數(shù). . 可作為可作為:4:4個(gè)個(gè)3232位寄存器位寄存器(EAX,EBX,ECX,EDX)(EAX,EBX,ECX,EDX) 4 4個(gè)個(gè)1616位寄存器位寄存器(AX,BX,CX,DX)(AX,BX,CX,DX) 8 8個(gè)個(gè)8 8

40、位寄存器位寄存器(AH,AL.BH,BL,CH,CL,DH,DL)(AH,AL.BH,BL,CH,CL,DH,DL) EAX(AX,AH,AL):EAX(AX,AH,AL):作為累加器用作為累加器用, ,是乘是乘、除及某些調(diào)整指令使除及某些調(diào)整指令使用用. .在在8038680386以上的處理器中以上的處理器中, ,也可用于保存地址也可用于保存地址, ,作間址器作間址器. . EBX(BX,BH,BL):EBX(BX,BH,BL):作為尋址作為尋址/ /基址寄存器用基址寄存器用. . ECX(CX,CH,CL):ECX(CX,CH,CL):作為計(jì)數(shù)器用作為計(jì)數(shù)器用. . EDX(DX,DH,D

41、L):EDX(DX,DH,DL):作為通用數(shù)據(jù)寄存器用作為通用數(shù)據(jù)寄存器用. .按使用權(quán)限分計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture222.2.指針及地址寄存器指針及地址寄存器 ESP,EBP,ESI,EDIESP,EBP,ESI,EDI可用于存放可用于存放16/3216/32位數(shù)據(jù)位數(shù)據(jù), ,但更常用于存放但更常用于存放指針指針操作數(shù)地址。操作數(shù)地址。 (1)ESP(SP)(1)ESP(SP)用于存放堆棧指針用于存放堆棧指針, ,也叫堆棧指針寄存器也叫堆棧指針寄存器. . (2)EBP(BP)(2)EBP(BP)存放堆棧段中的基地址存放堆棧段中的

42、基地址, ,訪問(wèn)堆棧段的其它信息訪問(wèn)堆棧段的其它信息 (3)ESI(SI)(3)ESI(SI)用于尋址串指令的源數(shù)據(jù)串用于尋址串指令的源數(shù)據(jù)串, ,稱源變址寄存器稱源變址寄存器. . (4)EDI(DI)(4)EDI(DI)用于尋址串指令的目標(biāo)數(shù)據(jù)串用于尋址串指令的目標(biāo)數(shù)據(jù)串, ,稱目標(biāo)變址寄存稱目標(biāo)變址寄存器器. . 其中其中,ESI,ESI、EDIEDI也可用作通用數(shù)據(jù)寄存器。也可用作通用數(shù)據(jù)寄存器。計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture233.3.段寄存器段寄存器4.4.控制寄存器控制寄存器 8086/802868086/80286有有CS

43、,DS,ESCS,DS,ES和和SSSS四個(gè)段寄存器四個(gè)段寄存器,80386,80386以后增加以后增加了了FSFS和和GS.GS. (1)CS:(1)CS:代碼段寄存器代碼段寄存器, ,存放代碼段的始址存放代碼段的始址. . (2)DS:(2)DS:數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器, ,存放數(shù)據(jù)段的始址存放數(shù)據(jù)段的始址. . (3)SS:(3)SS:堆棧段寄存器堆棧段寄存器, ,存放堆棧中的相對(duì)地址存放堆棧中的相對(duì)地址. . (4)ES,FS,GS:(4)ES,FS,GS:附加數(shù)據(jù)段寄存器附加數(shù)據(jù)段寄存器, ,為某些串指令存放目標(biāo)為某些串指令存放目標(biāo)數(shù)據(jù)而外加的數(shù)據(jù)段數(shù)據(jù)而外加的數(shù)據(jù)段. . 控制寄

44、存器控制寄存器: : (1)EIP:(1)EIP:指令指針寄存器指令指針寄存器. . (2)EFLAGS:(2)EFLAGS:狀態(tài)和標(biāo)志寄存器狀態(tài)和標(biāo)志寄存器, ,用其每一位指示處理器的用其每一位指示處理器的一種工作狀態(tài)一種工作狀態(tài), ,常用以下標(biāo)志位常用以下標(biāo)志位: : CF:CF:進(jìn)位標(biāo)志進(jìn)位標(biāo)志, ,記錄最高有效位產(chǎn)生的進(jìn)位或借位記錄最高有效位產(chǎn)生的進(jìn)位或借位. . PF:PF:奇偶標(biāo)志奇偶標(biāo)志, ,用于奇偶校驗(yàn)用于奇偶校驗(yàn). .計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture244.4.控制寄存器控制寄存器 AF:AF:輔助進(jìn)位標(biāo)志輔助進(jìn)位標(biāo)志,

45、,記錄運(yùn)算時(shí)半字節(jié)間的進(jìn)位記錄運(yùn)算時(shí)半字節(jié)間的進(jìn)位. . ZF:ZF:零標(biāo)志零標(biāo)志, ,運(yùn)算結(jié)果為運(yùn)算結(jié)果為0 0時(shí)時(shí), ,置置1;1;否則為否則為0.0. SF:SF:符號(hào)標(biāo)志符號(hào)標(biāo)志, ,運(yùn)算結(jié)果為負(fù)時(shí)運(yùn)算結(jié)果為負(fù)時(shí),SF=1;,SF=1;否則為否則為0.0. TF:TF:陷阱標(biāo)志陷阱標(biāo)志, ,為為1 1時(shí)時(shí), ,則在執(zhí)行指令時(shí)產(chǎn)生單步中斷則在執(zhí)行指令時(shí)產(chǎn)生單步中斷. . IF:IF:允許中斷標(biāo)志允許中斷標(biāo)志, ,置置1,1,允許中斷允許中斷. . DF:DF:方向標(biāo)志方向標(biāo)志, ,為為0 0時(shí)時(shí),SI,SI和和DIDI的地址遞增的地址遞增; ;否則遞減否則遞減. . OF:OF:溢出標(biāo)志

46、溢出標(biāo)志, ,為為1 1時(shí)時(shí), ,表示超過(guò)機(jī)器表示數(shù)的范圍表示超過(guò)機(jī)器表示數(shù)的范圍. . IOPL:IOPL:特權(quán)標(biāo)志特權(quán)標(biāo)志. . NT:NT:任務(wù)嵌套標(biāo)志任務(wù)嵌套標(biāo)志. . RF:RF:調(diào)試時(shí)設(shè)置恢復(fù)標(biāo)志調(diào)試時(shí)設(shè)置恢復(fù)標(biāo)志. . VM:VM:虛擬方式標(biāo)志虛擬方式標(biāo)志. . VIF:VIF:虛擬方式下中斷標(biāo)志虛擬方式下中斷標(biāo)志. . VIP:VIP:多任務(wù)環(huán)境下多任務(wù)環(huán)境下, ,給操作系統(tǒng)提供虛擬中斷標(biāo)志和中給操作系統(tǒng)提供虛擬中斷標(biāo)志和中 ID:ID:指示奔騰支持指示奔騰支持CPUIDCPUID指令指令, ,為系統(tǒng)提供版本為系統(tǒng)提供版本, ,制造廠等制造廠等信息信息斷暫掛信息計(jì)算機(jī)組成與結(jié)構(gòu)

47、ComputerOrganizationandArchitecture25IPFLAGSDSCSESSSFSGSAH AX ALBH BX BLCH CX CLDH DX DLSPBPDISIEIPEFLAGSEAXEBXECXEDXESPEBPEDIESI32位8位寄存器32位寄存器名16位16位指令指針寄存器標(biāo)志寄存器代碼段寄存器數(shù)據(jù)段寄存器附加數(shù)據(jù)段寄存器堆棧數(shù)據(jù)段寄存器附加數(shù)據(jù)段寄存器附加數(shù)據(jù)段寄存器累加器基址寄存器計(jì)數(shù)器數(shù)據(jù)寄存器棧頂指針基址指針目標(biāo)變址寄存器源變址寄存器1.控制寄存器2.段寄存器3.數(shù)據(jù)寄存器4.指針及地址寄存器圖5.8 80X86及奔騰處理器提供的可編程寄存器集計(jì)

48、算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture265.1.4 Intel 80865.1.4 Intel 8086指令簡(jiǎn)介指令簡(jiǎn)介 本節(jié)要點(diǎn)本節(jié)要點(diǎn): :是本章之重點(diǎn)是本章之重點(diǎn), ,要了解要了解: : (1)(1)每條指令的功能和用法每條指令的功能和用法, ,并并 (2)(2)多上機(jī)去逐條體會(huì)多上機(jī)去逐條體會(huì). . 1.1.數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令: :用于寄存器用于寄存器, ,存儲(chǔ)單元或輸入存儲(chǔ)單元或輸入/ /輸出端口輸出端口間的數(shù)據(jù)或地址的傳送間的數(shù)據(jù)或地址的傳送. . R M, R I/O, R R, 立即數(shù)立即數(shù) R/M , 不能不能M M (1

49、)(1)通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令: : MOVMOV指令指令: :最基本的最基本的數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 MOV AL,BL ;R R, 8位位 MOV SI,BP+8AH; R M,16位位 MOV AL,6 ; R 立即數(shù)立即數(shù), 8位位 XCHGXCHG指令指令: :可可M R, R R ; 不能不能M M,M M,段寄存器段寄存器 段寄存器段寄存器, ,立即數(shù)立即數(shù) R/M R/MCS,DS,ES,SS存儲(chǔ)器通用寄存器AX,BXCX,DXBP,SPSI,DI立即數(shù)計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture275.1.4 Intel

50、80865.1.4 Intel 8086指令簡(jiǎn)介指令簡(jiǎn)介 (2)(2)輸入輸入/ /輸出指令輸出指令: : AX/AL I/O 端口端口 IN AL, 0B5H ;字節(jié)輸入字節(jié)輸入 OUT 0FAH, AX ;字輸出字輸出 MOV DX, 0358H;設(shè)置端口地址設(shè)置端口地址 IN AX, DX; 字輸入字輸入 (3)(3)地址傳送指令地址傳送指令: : 功能功能: :傳送操作數(shù)的地址傳送操作數(shù)的地址. . 注意注意: :操作數(shù)必須是存儲(chǔ)器操作數(shù)操作數(shù)必須是存儲(chǔ)器操作數(shù), ,是送它的地址是送它的地址. . LEA(Load Effective Address) 功能功能: :把源操作數(shù)的把源操

51、作數(shù)的EAEA送寄存器送寄存器, ,即即LEA REG,SRC 說(shuō)明說(shuō)明: :源操作數(shù)源操作數(shù)SRCSRC必須是內(nèi)存操作數(shù)必須是內(nèi)存操作數(shù) 目的操作數(shù)必須是目的操作數(shù)必須是1616位的通用寄存器位的通用寄存器. .直接尋址間接尋址EAAL/AXportOUTIN外界計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture28(3)(3)地址傳送指令地址傳送指令 舉例舉例:LEA BX,XYZ ; XYZ DB 222H (222H)=1916H:LEA BX,XYZ ; XYZ DB 222H (222H)=1916H 執(zhí)行后執(zhí)行后, BX=222H, BX=22

52、2H LEA BX,XYZ = MOV BX,OFFSET XYZ LDS 功能功能: :地址指針?biāo)湍硵?shù)據(jù)寄存器和地址指針?biāo)湍硵?shù)據(jù)寄存器和DS.DS.寄存器常特指為寄存器常特指為SISI 格式格式:LDS REG,SRC:LDS REG,SRC ;源操作數(shù)是雙字長(zhǎng)的存儲(chǔ)器操作數(shù),32位 操作操作:(REG) (SRC)低字低字, (DS) (SRC+2)高字高字 舉例舉例:LDS SI,BX MOV SI,BX,MOV AX,BX+2,MOV DS,AX LES :LES :與與LDSLDS不同點(diǎn)在于用不同點(diǎn)在于用ESES代代DSDS 功能功能: :地址指針?biāo)湍硵?shù)據(jù)寄存器和地址指針?biāo)湍硵?shù)據(jù)寄存

53、器和ES.ES.寄存器常特指為寄存器常特指為DIDI 格式格式:LES REG,SRC ;源操作數(shù)是雙字長(zhǎng)的存儲(chǔ)器操作數(shù),32位 操作操作:(REG) (SRC)低字低字, (ES) (SRC+2)高字高字計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture292.2.算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 (4)(4)標(biāo)志傳送指令標(biāo)志傳送指令: :專用于標(biāo)志寄存器專用于標(biāo)志寄存器FLFL的操作的操作. . LAHF(Load AH from Flags)-標(biāo)志寄存器低標(biāo)志寄存器低8位送位送AH SAHF(Store AH into Flags)-AH內(nèi)容送標(biāo)志寄存器內(nèi)容送

54、標(biāo)志寄存器 PUSHF(PUSH the Flags)-標(biāo)志寄存器內(nèi)容進(jìn)棧標(biāo)志寄存器內(nèi)容進(jìn)棧 POPF(POP the Flags)-棧頂內(nèi)容送標(biāo)志寄存器棧頂內(nèi)容送標(biāo)志寄存器 2.2.算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 二進(jìn)制數(shù)二進(jìn)制數(shù) 無(wú)符號(hào)十進(jìn)制數(shù)無(wú)符號(hào)十進(jìn)制數(shù)共同點(diǎn)1.隱含操作數(shù)2.無(wú)操作數(shù)指令A(yù)PCZSAH.7 0處理對(duì)象壓縮碼(組合):每字節(jié)放二個(gè)BCD碼非壓縮碼(非組合):每字節(jié)一個(gè)BCD碼例:LAHF; 標(biāo)志的低8位送AHOR AH,01000000B; 將ZF=1SAHF; ZF=1,其余標(biāo)志位不變計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture30

55、2.2.算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 1)1)加法指令加法指令 (1)ADD(1)ADD加法指令加法指令 語(yǔ)法語(yǔ)法:ADD DST,SRC:ADD DST,SRC 功能功能:(DST) (SRC)+(DST); 操作數(shù)可為操作數(shù)可為R,MR,M或立即或立即數(shù)數(shù). . 舉例舉例:ADD AX,BX; ADD AL,40H; ADD BX+SI+64H,AX:ADD AX,BX; ADD AL,40H; ADD BX+SI+64H,AX 注意注意:1.參與運(yùn)算的兩操作數(shù)應(yīng)同時(shí)帶或不帶符號(hào)參與運(yùn)算的兩操作數(shù)應(yīng)同時(shí)帶或不帶符號(hào).長(zhǎng)度應(yīng)一致長(zhǎng)度應(yīng)一致. 2.兩操作數(shù)不能同為存儲(chǔ)器數(shù)兩操作數(shù)不能同為存儲(chǔ)器數(shù),

56、 立即數(shù)不能為目標(biāo)操作數(shù)立即數(shù)不能為目標(biāo)操作數(shù). (2)(2)帶進(jìn)位加法帶進(jìn)位加法ADC:ADC: 語(yǔ)法語(yǔ)法:ADC DST,SRC :ADC DST,SRC 功能功能:(DST) (SRC)+(DST)+CF:(DST) (SRC)+(DST)+CF (3)(3)增量指令增量指令I(lǐng)NC: INC: 每次加每次加1 1后回送后回送. . 語(yǔ)法語(yǔ)法:INC SRC; SRC:INC SRC; SRC可為可為R R或或M M 注意注意: :操作數(shù)不能為立即數(shù)操作數(shù)不能為立即數(shù). . 舉例舉例:IDC CX:IDC CX 用途用途: :常用于修改地址指針常用于修改地址指針. .計(jì)算機(jī)組成與結(jié)構(gòu)Com

57、puterOrganizationandArchitecture312.2.算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 (4)AAA(unpacked BCD adjust for addition)-加法的十進(jìn)制調(diào)加法的十進(jìn)制調(diào)整指令整指令 格式格式:AAA ;:AAA ;無(wú)操作數(shù)無(wú)操作數(shù) 操作操作: :不做加法不做加法, ,僅把僅把ALAL中的和調(diào)整為非組合的中的和調(diào)整為非組合的BCDBCD格式格式 舉例舉例: :ADD AL,BL ; AL=07H, BL=06H AAA ; AX=0103 13 DAA (Decimal adjust for addition) 組合的組合的BCDBCD碼的十進(jìn)制調(diào)整加

58、法指令碼的十進(jìn)制調(diào)整加法指令 格式格式:DAA ;:DAA ;無(wú)操作數(shù)無(wú)操作數(shù) 操作操作: :不做加法不做加法, ,僅把僅把ALAL中的和調(diào)整為組合的中的和調(diào)整為組合的BCDBCD格式格式 舉例舉例:ADD AL,BL; AL=26H,BL=55H DAA ; AL=81 +00000110 1101 + 110加6調(diào)整 0001001113 +01010101 01111011(7BH)+ 0110加6調(diào)整 10000001 81加6調(diào)整是對(duì)大于9的數(shù),加上6使之 A B C D E F 0 1 2 3 4 5計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitectu

59、re322.2.算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 2)2)減法指令減法指令: SUB ,SBB, DEC,NEG,CMP: SUB ,SBB, DEC,NEG,CMP (1)SUB DST,SRC ; DST(1)SUB DST,SRC ; DSTSRC DST;SRC DST;例例SUB AX,1200H (2)SBB DST,SRC ; DST(2)SBB DST,SRC ; DSTSRCSRCCF DSTCF DST (3)DEC(3)DEC ;每次減每次減1 1 (4)NEG(4)NEG ;求補(bǔ)求補(bǔ), ,即即0 0操作數(shù)操作數(shù) (5)CMP DST,SRC(5)CMP DST,SRC ;只做只

60、做DSTDSTSRC,SRC,不送結(jié)果不送結(jié)果, ,兩操作數(shù)保持兩操作數(shù)保持原值原值, ,只改變標(biāo)志位只改變標(biāo)志位. . 3)3)乘法指令乘法指令:MUL,IMUL(Integer Multiplication):MUL,IMUL(Integer Multiplication) MUL SRC(B) ; AX=AL*SRC ; IMUL是帶符號(hào)數(shù)的乘是帶符號(hào)數(shù)的乘法法 MUL SRC(W); DX.AX=AX*SRCAL乘數(shù)AH ALAX乘數(shù)DX AX8位8位16位16位16位32位計(jì)算機(jī)組成與結(jié)構(gòu)ComputerOrganizationandArchitecture332.2.算術(shù)運(yùn)算指令算

溫馨提示

  • 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)論