第3章 指令系統(tǒng)_第1頁
第3章 指令系統(tǒng)_第2頁
第3章 指令系統(tǒng)_第3頁
第3章 指令系統(tǒng)_第4頁
第3章 指令系統(tǒng)_第5頁
已閱讀5頁,還剩117頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三章第三章 指令系統(tǒng)指令系統(tǒng)College of physicsHunan University of Science and Technology第三章第三章 指令系統(tǒng)指令系統(tǒng)3.1 基本基本數(shù)據(jù)類型數(shù)據(jù)類型3.2 IA-32指令的指令的尋址方式尋址方式3.3 IA-32的的指令格式指令格式3.4 IA-32的的通用整數(shù)指令及應用通用整數(shù)指令及應用3.5 x87 FPU 指令指令3.6 關于指令系統(tǒng)的關于指令系統(tǒng)的說明說明3.7 指令應用指令應用舉例舉例以以Pentium MPU 為例進行講解為例進行講解3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型n Pentium在其內(nèi)部定點處理單元在其內(nèi)部定點處理

2、單元CPU和浮點處和浮點處理單元理單元FPU的支持下,共可處理的支持下,共可處理7類數(shù)據(jù):類數(shù)據(jù):p 1. 無符號二進制數(shù)無符號二進制數(shù)p 2. 帶符號的二進制定點整數(shù)帶符號的二進制定點整數(shù)p 3. 浮點數(shù)浮點數(shù)p 4. BCD碼數(shù)碼數(shù)p 5. 串數(shù)據(jù)串數(shù)據(jù)p 6. ASCII碼數(shù)據(jù)碼數(shù)據(jù)p 7. 指針數(shù)據(jù)指針數(shù)據(jù)3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 1.無符號二進制數(shù)無符號二進制數(shù)(序數(shù)序數(shù))n這類數(shù)不帶任何這類數(shù)不帶任何符號符號信息,只含有量值域,信息,只含有量值域,僅僅CPU支持。分為支持。分為:p字節(jié):字節(jié):任何邏輯地址上的任何邏輯地址上的8位相鄰位串。位相鄰位串。p字:字:任何字節(jié)地址開

3、始的任何字節(jié)地址開始的2個相鄰字節(jié),個相鄰字節(jié),低字節(jié)地低字節(jié)地址址為該字地址。為該字地址。p雙字:雙字:任何字節(jié)地址開始的任何字節(jié)地址開始的2個相鄰字,即個相鄰字,即4個相個相鄰字節(jié),鄰字節(jié),最小字節(jié)地址最小字節(jié)地址為雙字的地址。為雙字的地址。p四字:四字:任何字節(jié)地址開始的任何字節(jié)地址開始的4個相鄰字,即個相鄰字,即8個相個相鄰字節(jié)。鄰字節(jié)。p雙四字:雙四字:任何字節(jié)地址開始的任何字節(jié)地址開始的8個相鄰字,即個相鄰字,即16個個相鄰字節(jié)。相鄰字節(jié)。3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 1.無符號二進制數(shù)無符號二進制數(shù)(序數(shù)序數(shù))FHEHDHCHBHAH9H8H7H6H5H4H3H2H1H0H8

4、6H12H7AHFEH06H36H1FHA4H23H0BH45H67H74HCBH31H12H在地址在地址CH的的字節(jié)字節(jié)包含包含F(xiàn)EH在地址在地址4H的的字字包含包含4567H在地址在地址9H的的字字包含包含361FH基本數(shù)據(jù)類型在內(nèi)存中的字節(jié)順序基本數(shù)據(jù)類型在內(nèi)存中的字節(jié)順序在地址在地址0H雙四字包含雙四字包含86127AFE06361FA4230B456774CB3112H在地址在地址8H的的四字四字包含包含86127AFE06361FA4H在地址在地址0H的的雙字雙字包含包含86127AFEH低字節(jié)低字節(jié)占用內(nèi)占用內(nèi)存中的存中的最低地最低地址址,此,此地址也地址也是此是此操操作數(shù)的作數(shù)

5、的地址地址。3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型2.帶符號的二進制定點整數(shù)帶符號的二進制定點整數(shù)(整數(shù)整數(shù))p這類數(shù)均以這類數(shù)均以補碼補碼表示表示,有有8位數(shù)位數(shù)(字節(jié)字節(jié))、16位數(shù)位數(shù)(字字)、32位數(shù)位數(shù)(雙字雙字)、64位數(shù)位數(shù)(4字字)四四種。種。pCPU支持前支持前3種,種,F(xiàn)PU支持后支持后3種。種。n這類數(shù)由這類數(shù)由FPU支持支持,有有單精度單精度、雙精度雙精度和和擴展精度擴展精度三種形式:三種形式:3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 3.浮點數(shù)浮點數(shù)(實數(shù)實數(shù)) 單精度數(shù)單精度數(shù) 雙精度數(shù)雙精度數(shù) 擴展精度數(shù)擴展精度數(shù)1 179 78 64 63 079 78 64 63 0符號位

6、符號位階階 碼碼有有 效效 數(shù)數(shù). .符號位符號位階階 碼碼有有 效效 數(shù)數(shù)1.1.63 62 52 51 063 62 52 51 031 30 23 22 031 30 23 22 0符號位符號位階階 碼碼有有 效效 數(shù)數(shù)1.1.3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 3.浮點數(shù)浮點數(shù)(實數(shù)實數(shù))n浮點數(shù)格式浮點數(shù)格式的兩點說明:的兩點說明:p3種浮點數(shù)的有效數(shù)字段都做了種浮點數(shù)的有效數(shù)字段都做了規(guī)格化處理規(guī)格化處理,其整數(shù)位,其整數(shù)位總是總是1。但需注意。但需注意,只有擴展精度格式的整數(shù)位只有擴展精度格式的整數(shù)位1真的存真的存在,其余兩種格式下整數(shù)位在,其余兩種格式下整數(shù)位1是隱含的,并不真的

7、被存是隱含的,并不真的被存放起來。放起來。p格式中的階碼是以格式中的階碼是以偏置形式存放偏置形式存放的的(即其階碼要加上一即其階碼要加上一個常數(shù)偏置值才是格式階碼個常數(shù)偏置值才是格式階碼),且偏置后的格式階碼恒為且偏置后的格式階碼恒為正數(shù)。這樣有利于簡化符點數(shù)大小的比較過程:對兩正數(shù)。這樣有利于簡化符點數(shù)大小的比較過程:對兩個相同格式的實數(shù)進行比較時,就像對兩個無符號二個相同格式的實數(shù)進行比較時,就像對兩個無符號二進制整數(shù)進行比較一樣方便,當從高位到低位比較兩進制整數(shù)進行比較一樣方便,當從高位到低位比較兩個格式階碼時,若某位的階碼有大小之分,就不用再個格式階碼時,若某位的階碼有大小之分,就不用

8、再比較下去了。比較下去了。由于三種浮點數(shù)格式的由于三種浮點數(shù)格式的階碼位數(shù)階碼位數(shù)不同,其數(shù)值范圍也不同,其數(shù)值范圍也不同。為了保證統(tǒng)一偏置后的階碼恒為正數(shù),其偏置不同。為了保證統(tǒng)一偏置后的階碼恒為正數(shù),其偏置值必然也為不同正值。值必然也為不同正值。最大階碼值最大階碼值 +127 +1023 +16383+127 +1023 +16383參參 數(shù)數(shù)格格 式式單精度單精度雙精度雙精度擴展精度擴展精度格式總寬度(位)格式總寬度(位) 32 64 8032 64 80符號位位數(shù)符號位位數(shù) 1 1 11 1 1有效數(shù)位數(shù)有效數(shù)位數(shù)( (精度位數(shù)精度位數(shù)) 23+1() 23+1(隱)隱) 52+1(5

9、2+1(隱)隱) 6464階碼寬度(位)階碼寬度(位) 8 11 158 11 15最小階碼值最小階碼值 -128 -1024 -16384-128 -1024 -16384階碼偏置值階碼偏置值 +127 +1023 +16383+127 +1023 +16383 在作了上述偏置處理后,進行浮點數(shù)運算時,一個數(shù)的在作了上述偏置處理后,進行浮點數(shù)運算時,一個數(shù)的真階碼真階碼需要將其格式階碼減去偏置值來獲得。需要將其格式階碼減去偏置值來獲得。3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 4.BCD碼數(shù)碼數(shù)pBCD碼數(shù)有碼數(shù)有壓縮壓縮和和非壓縮非壓縮BCD碼碼數(shù)兩種。數(shù)兩種。p CPU兩種數(shù)都支持;兩種數(shù)都支持

10、;FPU只支持壓縮只支持壓縮BCD碼數(shù),碼數(shù),且最大長度為且最大長度為80位,最多可處理位,最多可處理20位位BCD碼數(shù)。碼數(shù)。5.串數(shù)據(jù)串數(shù)據(jù) 這類數(shù)據(jù)僅這類數(shù)據(jù)僅CPUCPU支持。包括支持。包括: : 位串位串: : 字節(jié)字節(jié)/ /字字/ /雙字串雙字串: :是從任何字節(jié)的任何位開始的相鄰是從任何字節(jié)的任何位開始的相鄰位的序列,最長可達位的序列,最長可達2 23232-1-1位。位。是字節(jié)是字節(jié)/ /字字/ /雙字的相鄰序雙字的相鄰序列,最長可達列,最長可達2 23232-1-1字節(jié)。字節(jié)。3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型6.ASCII碼數(shù)據(jù)碼數(shù)據(jù)包括包括ASCIIASCII碼碼字符串字符

11、串和和ASCIIASCII碼數(shù)碼數(shù)(0(0F)F)兩種兩種。7.指針數(shù)據(jù)指針數(shù)據(jù)包括近指針和遠指針兩種包括近指針和遠指針兩種: : 近指針近指針即即3232位指針位指針, ,是一個是一個3232位的段內(nèi)位的段內(nèi)偏移量偏移量, ,段內(nèi)尋址用。段內(nèi)尋址用。 遠指針遠指針即即4848位指針位指針, ,由由1616位選擇符和位選擇符和3232位偏移量組成,用于跨段訪問。位偏移量組成,用于跨段訪問。關于數(shù)據(jù)類型的兩點說明:關于數(shù)據(jù)類型的兩點說明:(1)(1)在上述各類型數(shù)據(jù)中,基本的數(shù)據(jù)類型仍是字節(jié)、字和在上述各類型數(shù)據(jù)中,基本的數(shù)據(jù)類型仍是字節(jié)、字和雙字。一般應盡可能將雙字。一般應盡可能將字字操作對準

12、于操作對準于偶地址偶地址,將,將雙字雙字操作對操作對準于準于4 4的整數(shù)倍地址的整數(shù)倍地址。但也允許不對準操作,以便在數(shù)據(jù)結。但也允許不對準操作,以便在數(shù)據(jù)結構的處理上和存儲器的有效利用上給系統(tǒng)設計人員和用戶提構的處理上和存儲器的有效利用上給系統(tǒng)設計人員和用戶提供最大的靈活性。不過,對準和不對準獲得的數(shù)據(jù)傳遞速度供最大的靈活性。不過,對準和不對準獲得的數(shù)據(jù)傳遞速度不一樣:對準的字和字節(jié)可一次傳遞完,而未對準的字和雙不一樣:對準的字和字節(jié)可一次傳遞完,而未對準的字和雙字需幾次才能傳遞完。字需幾次才能傳遞完。(2)(2)對于字和雙字數(shù)據(jù),對于字和雙字數(shù)據(jù),8048680486是采用低端地址方式來存

13、儲的。是采用低端地址方式來存儲的。即字數(shù)據(jù)被存儲在兩個相鄰的字節(jié)單元之中,低位字節(jié)在低即字數(shù)據(jù)被存儲在兩個相鄰的字節(jié)單元之中,低位字節(jié)在低地址單元,高位字節(jié)在高地址單元;雙字數(shù)據(jù)存儲在四個連地址單元,高位字節(jié)在高地址單元;雙字數(shù)據(jù)存儲在四個連續(xù)字節(jié)單元中,最低位字節(jié)在最低地址單元,最高字節(jié)在最續(xù)字節(jié)單元中,最低位字節(jié)在最低地址單元,最高字節(jié)在最高地址單元。而字或雙字數(shù)據(jù)的地址是指最低位字節(jié)所在的高地址單元。而字或雙字數(shù)據(jù)的地址是指最低位字節(jié)所在的單元地址。單元地址。3.2 IA-32指令的尋址方式指令的尋址方式3.2.1 尋址方式和有效地址概念尋址方式和有效地址概念3.2.2 11種尋址方式種

14、尋址方式3.2.3 存儲器尋址時的段約定存儲器尋址時的段約定3.2.4 應用舉例應用舉例3.2 尋址方式尋址方式 1.尋址方式和有效地址概念尋址方式和有效地址概念 尋址方式尋址方式就是尋找指令中操作數(shù)地址的方式。操作數(shù)就是尋找指令中操作數(shù)地址的方式。操作數(shù)所在地址有三種可能:所在地址有三種可能: 直接包含在指令中直接包含在指令中,即指令的操作數(shù)部分就是操作數(shù),即指令的操作數(shù)部分就是操作數(shù)本身。這種操作數(shù)叫立即數(shù),對應的指令尋址方式稱為本身。這種操作數(shù)叫立即數(shù),對應的指令尋址方式稱為立即數(shù)尋址立即數(shù)尋址。包含在包含在CPUCPU的某個內(nèi)部寄存器中的某個內(nèi)部寄存器中。這時指令中的操作數(shù)。這時指令中

15、的操作數(shù)部分是部分是CPUCPU的一個寄存器,這種指令尋址方式稱為的一個寄存器,這種指令尋址方式稱為寄存器寄存器尋址尋址。在內(nèi)存儲器中在內(nèi)存儲器中。這時指令的操作數(shù)部分包含著該操作。這時指令的操作數(shù)部分包含著該操作數(shù)所在的內(nèi)存地址。這種指令尋址方式稱為數(shù)所在的內(nèi)存地址。這種指令尋址方式稱為存儲器尋址存儲器尋址。3.2 尋址方式尋址方式 1.尋址方式和有效地址概念尋址方式和有效地址概念 在在PentiumPentium系列系列MPUMPU中,內(nèi)存實際地址中,內(nèi)存實際地址(PA)(PA)由段基由段基地址和段內(nèi)偏移地址兩部分組成。地址和段內(nèi)偏移地址兩部分組成。 為了適應處理各種數(shù)據(jù)結構的需要,段內(nèi)偏

16、移地為了適應處理各種數(shù)據(jù)結構的需要,段內(nèi)偏移地址可由以下幾部分組合而成:址可由以下幾部分組合而成:v 基址寄存器內(nèi)容基址寄存器內(nèi)容v 變址寄存器內(nèi)容變址寄存器內(nèi)容v 比例因子比例因子v 位移量位移量 這四個基本部分稱為偏移地址四元素,一般又將這四個基本部分稱為偏移地址四元素,一般又將由這四種元素組合形成的偏移地址稱為有效地址由這四種元素組合形成的偏移地址稱為有效地址EAEA。EA=EA=基址基址+(+(變址變址比例因子比例因子)+)+位移量位移量3.2 尋址方式尋址方式 1.尋址方式和有效地址概念尋址方式和有效地址概念有效地址元素有效地址元素1616位尋址位尋址3232位尋址位尋址基址寄存器基

17、址寄存器 BX,BP BX,BP 任何任何3232位通用寄存器位通用寄存器變址寄存器變址寄存器 SI,DI SI,DI 除除ESPESP外的任何外的任何3232位通用寄存器位通用寄存器比例因子比例因子 無(或無(或1 1) 1 1,2 2,4 4,8 8位移量位移量 0 0,8 8,1616位位 0 0,8 8,3232位位1616位和位和3232位尋址時的四元素定義位尋址時的四元素定義3.2 尋址方式尋址方式 1.尋址方式和有效地址概念尋址方式和有效地址概念尋址過程尋址過程( (地址轉換過程地址轉換過程) )有效地址計算有效地址計算變址變址位移位移基址基址比例因子比例因子+ +3232位位有

18、效地址有效地址31 031 0BE3BE3BE0BE0A31A31A2A232 32 位位32 32 位位1313位位通過段描述符通過段描述符提供段基址提供段基址段寄存器段寄存器選擇符選擇符 TITIRPLRPL15 3 2 1 015 3 2 1 0分段分段部件部件線性線性地址地址物理物理存儲器存儲器分頁分頁部件部件( (可選可選) )物理物理地址地址邏輯地址邏輯地址( (虛擬虛擬) )(CS,DS,ES,SS, FS,GSCS,DS,ES,SS, FS,GS)不分頁不分頁尋址過程尋址過程( (地址轉換過程地址轉換過程) )有效地址計算有效地址計算變址變址位移位移基址基址比例因子比例因子+

19、+3232位位有效地址有效地址31 031 0BE3BE3BE0BE0A31A31A2A2BE3BE3BE0BE0A31A31A2A232 32 位位32 32 位位1313位位通過段描述符通過段描述符提供段基址提供段基址段寄存器段寄存器選擇符選擇符 TITIRPLRPL15 3 2 1 015 3 2 1 0分段分段部件部件線性線性地址地址物理物理存儲器存儲器分頁分頁部件部件( (可選可選) )物理物理地址地址邏輯地址邏輯地址( (虛擬虛擬) )(CS,DS,ES,SS, FS,GSCS,DS,ES,SS, FS,GS)不分頁不分頁3.2 尋址方式尋址方式 2. 尋址方式尋址方式11種種 偏

20、移地址四元素可優(yōu)化組合出偏移地址四元素可優(yōu)化組合出9 9種存儲器尋址方式種存儲器尋址方式, ,加上立即數(shù)尋址和寄存器尋址,加上立即數(shù)尋址和寄存器尋址,8048680486共有共有1111種尋址方種尋址方式式: :(1) (1) 立即數(shù)尋址立即數(shù)尋址(2) (2) 寄存器尋址寄存器尋址(3) (3) 直接尋址直接尋址(4) (4) 寄存器間接尋址寄存器間接尋址(5) (5) 基址尋址基址尋址(6) (6) 變址尋址變址尋址(7) (7) 比例變址尋址比例變址尋址(8) (8) 基址加變址尋址基址加變址尋址(9) (9) 基址加比例變址尋址基址加比例變址尋址(10)(10)帶位移的基址加變址尋址帶

21、位移的基址加變址尋址(11)(11)帶位移的基址加比例變址尋址帶位移的基址加比例變址尋址3.2 尋址方式尋址方式 (1)立即數(shù)尋址立即數(shù)尋址 在這種尋址方式下在這種尋址方式下, ,操作數(shù)作為操作數(shù)作為立即數(shù)立即數(shù)直直接存在指令中接存在指令中, ,可為可為8 8位、位、1616位或位或3232位。位。例:例:MOV AXMOV AX,4567H4567HMOV BLMOV BL,78H78HMOV ECXMOV ECX,12345678H12345678H 以第以第3 3條指令為例,給出了立即數(shù)尋條指令為例,給出了立即數(shù)尋址方式的執(zhí)行過程的址方式的執(zhí)行過程的動畫演示動畫演示。3.2 尋址方式尋址

22、方式 (2)寄存器寄存器(直接直接)尋址尋址 在這種方式下在這種方式下, ,操作數(shù)包含在指令規(guī)定操作數(shù)包含在指令規(guī)定的的8 8位、位、1616位或位或3232位寄存器中。位寄存器中。例:例:MOV EAXMOV EAX,EDXEDXINC CLINC CLMOV DSMOV DS,AXAX 這種尋址方式指令編碼短,無需從存儲這種尋址方式指令編碼短,無需從存儲器取操作數(shù),故執(zhí)行速度快。器取操作數(shù),故執(zhí)行速度快。3.2 尋址方式尋址方式 (3) (存儲器存儲器)直接尋址直接尋址 在這種方式下,指令中的操作數(shù)部分直接在這種方式下,指令中的操作數(shù)部分直接給出操作數(shù)有效地址給出操作數(shù)有效地址EAEA,它

23、和操作碼一起放在,它和操作碼一起放在存儲器代碼段中,可以是存儲器代碼段中,可以是1616位或位或3232位整數(shù)。但位整數(shù)。但操作數(shù)一般在數(shù)據(jù)段操作數(shù)一般在數(shù)據(jù)段DSDS中。中。例:例: MOV AXMOV AX,DS:3000HDS:3000H 將將DSDS段中段中3000H3000H和和3OO1H3OO1H單元的內(nèi)容送到單元的內(nèi)容送到AXAX中。假設中。假設DS=5000HDS=5000H,則此指令是將物理地址為,則此指令是將物理地址為53000H53000H單元的內(nèi)容送到單元的內(nèi)容送到ALAL寄存器,將寄存器,將53001H53001H單單元的內(nèi)容送到元的內(nèi)容送到AHAH寄存器,詳情請看直

24、接尋址方寄存器,詳情請看直接尋址方式的執(zhí)行過程的式的執(zhí)行過程的動畫演示動畫演示。3.2 尋址方式尋址方式 (3) (存儲器存儲器)直接尋址直接尋址 實際中對于直接尋址實際中對于直接尋址, ,如操作數(shù)在如操作數(shù)在DSDS段中段中, ,則可則可直接寫成直接寫成: :MOV AX,3000HMOV AX,3000H 如操作數(shù)在如操作數(shù)在DSDS之外的其他段之外的其他段(CS,SS,ES,FS,GS)(CS,SS,ES,FS,GS)中中, ,指令中則必須用段寄存器名前綴指令中則必須用段寄存器名前綴( (稱為段超越前稱為段超越前綴綴) )予以指明。例如:予以指明。例如:MOV AX,FS:3000HMO

25、V AX,FS:3000H直接尋址主要用于單個操作數(shù)的相對尋址場合直接尋址主要用于單個操作數(shù)的相對尋址場合( (如簡單的標量操作數(shù)尋址和靜分配數(shù)組的起始如簡單的標量操作數(shù)尋址和靜分配數(shù)組的起始地址尋址等地址尋址等) )。叫段默認叫段默認3.2 尋址方式尋址方式 (4)寄存器間接尋址寄存器間接尋址 在這種方式下在這種方式下, ,操作數(shù)放在存儲器中操作數(shù)放在存儲器中, ,但其有效地址但其有效地址EAEA放在寄存器中放在寄存器中, ,即即EA=EA=寄寄存器存器 。寄存器的使用規(guī)定在。寄存器的使用規(guī)定在1616位尋址和位尋址和3232位尋址時不一樣。位尋址時不一樣。3.2 尋址方式尋址方式 (4)寄

26、存器間接尋址寄存器間接尋址1616位尋址時,偏移地址放在位尋址時,偏移地址放在SISI、DIDI、BPBP或或BXBX中。中。 這時又有兩種段默認情況:這時又有兩種段默認情況:q若以若以SISI、DIDI、BXBX間接尋址間接尋址, ,則默認操作數(shù)在則默認操作數(shù)在DSDS段中。段中。 例如:例如: MOV AX,SI ;MOV AX,SI ;默認默認DSDS為段基址為段基址q若以若以BPBP間接尋址間接尋址, ,則默認操作數(shù)在則默認操作數(shù)在SSSS段中。段中。 例如:例如: MOV AX,BP ;MOV AX,BP ;默認默認SSSS為段基址為段基址 動畫演示動畫演示 如果操作數(shù)不在上述規(guī)定的

27、默認段,而是在其他段,如果操作數(shù)不在上述規(guī)定的默認段,而是在其他段,則必須在指令中相應的操作數(shù)前加上段超越前綴。例如:則必須在指令中相應的操作數(shù)前加上段超越前綴。例如:MOV AX,ES:SIMOV AX,ES:SIMOV AX,DS:BPMOV AX,DS:BP3.2 尋址方式尋址方式 (4)寄存器間接尋址寄存器間接尋址3232為尋址時為尋址時,8,8個個3232位通用寄存器均可作寄存器位通用寄存器均可作寄存器 間接尋址。間接尋址。例如:例如:MOV EBX,EAX ;MOV EBX,EAX ;默認默認DSDS為段基址為段基址, ,傳送雙字給傳送雙字給EBXEBXMOV DX,EBX ;MO

28、V DX,EBX ;默認默認DSDS為段基址為段基址, ,傳送字給傳送字給DXDXMOV CH,EAX ;MOV CH,EAX ;默認默認DSDS為段基址為段基址, ,傳送字節(jié)給傳送字節(jié)給CHCH 除除ESPESP、EBPEBP默認段寄存器為默認段寄存器為SSSS外,其余外,其余6 6個通用寄存器個通用寄存器均默認段寄存器為均默認段寄存器為DSDS。如操作數(shù)在默認段之外,指令中必。如操作數(shù)在默認段之外,指令中必須加段超越前綴。須加段超越前綴。 寄存器間接尋址的應用場合與直接尋址的應用場合相寄存器間接尋址的應用場合與直接尋址的應用場合相似,當更靈活。似,當更靈活。3.2 尋址方式尋址方式 (5)

29、基址尋址基址尋址 在這種方式下在這種方式下, ,EA=EA=基址寄存器基址寄存器+位移量位移量。其中。其中位移量一定要為常數(shù)位移量一定要為常數(shù), ,且跟隨在操作碼之后且跟隨在操作碼之后, ,與操作與操作碼一起存放在代碼段中。碼一起存放在代碼段中。1616位尋址情況下位尋址情況下,BX,BX和和BPBP作為基址寄存器。在缺省作為基址寄存器。在缺省段超越前綴時段超越前綴時,BX,BX以以DSDS作為默認段寄存器作為默認段寄存器,BP,BP以以SSSS作為作為默認段寄存器。位移量可為默認段寄存器。位移量可為8 8位或位或1616位;位;3232位尋址情況下,位尋址情況下,8 8個個3232位通用寄存

30、器均可作基址位通用寄存器均可作基址寄存器,其中寄存器,其中ESPESP、EBPEBP以以SSSS為默認段寄存器,其余為默認段寄存器,其余6 6個通用寄存器均以個通用寄存器均以DSDS為默認段寄存器。位移量為為默認段寄存器。位移量為8 8位位或或3232位。位。例如:例如: 動畫演示動畫演示MOV EAX,BX+24 ;MOV EAX,BX+24 ;也可寫成也可寫成MOV EAX,24BXMOV EAX,24BXMOV ECX,EBP+50 ;MOV ECX,EBP+50 ;也可寫成也可寫成MOV ECX,50EBPMOV ECX,50EBPMOV DX,EAX+1500;MOV DX,EAX+

31、1500;也可寫成也可寫成MOV DX,1500EAXMOV DX,1500EAX3.2 尋址方式尋址方式 (6)變址尋址變址尋址 在這種方式下在這種方式下, ,EA=EA=變址寄存器變址寄存器+位移量位移量。指令書寫格式和尋址執(zhí)行過程與基址尋址相同指令書寫格式和尋址執(zhí)行過程與基址尋址相同, ,區(qū)別僅在于將區(qū)別僅在于將基址寄存器基址寄存器改成改成變址寄存器變址寄存器。3.2 尋址方式尋址方式 (6)變址尋址變址尋址 1616位尋址時,僅位尋址時,僅SISI、DIDI可作變址寄存器,可作變址寄存器,且默認且默認DSDS作為段基址寄存器。如:作為段基址寄存器。如:MOV AX,COUNTSIMOV

32、 AX,COUNTSI 3232位尋址時位尋址時, ,除除ESPESP外的任何通用寄存器均外的任何通用寄存器均可作變址寄存器可作變址寄存器, ,且默認且默認EBPEBP以以SSSS作段基址寄存器作段基址寄存器, ,其余均以其余均以DSDS作段基址寄存器。作段基址寄存器。 如如: :MOV EAX,5EBPMOV EAX,5EBPMOV ECX,DATAEAXMOV ECX,DATAEAX基址、變址尋址適于對一維數(shù)組的數(shù)組元素進行檢基址、變址尋址適于對一維數(shù)組的數(shù)組元素進行檢索操作。位移量表示數(shù)組起始地址偏移量;基址索操作。位移量表示數(shù)組起始地址偏移量;基址/ /變址表示數(shù)組元素的下標,可變。變

33、址表示數(shù)組元素的下標,可變。3.2 尋址方式尋址方式 (7)比例變址尋址比例變址尋址在這種方式下:在這種方式下:EA=EA=變址寄存器變址寄存器 比例因子比例因子+ +位移量位移量這種尋址方式只適于這種尋址方式只適于3232位尋址一種情況。例如:位尋址一種情況。例如:MOV EAX,TABLEESIMOV EAX,TABLEESI* *44 ;TABLE;TABLE是位移量是位移量,4,4是比例因子是比例因子比例變址尋址和基址比例變址尋址和基址/ /變址尋址的作用相似變址尋址的作用相似, ,也適用也適用于對一維數(shù)組元素的檢索。但當數(shù)組元素大小為于對一維數(shù)組元素的檢索。但當數(shù)組元素大小為2/4/

34、82/4/8字節(jié)時,用它更方便、更高效。字節(jié)時,用它更方便、更高效。比例變址尋址方式的執(zhí)行過程的比例變址尋址方式的執(zhí)行過程的動畫演示動畫演示。3.2 尋址方式尋址方式 (8)基址加變址尋址基址加變址尋址在這種尋址方式下,在這種尋址方式下,EA=EA=基址寄存器基址寄存器+變址寄存器變址寄存器 例如:例如:MOV AX,BX+SI ;MOV AX,BX+SI ;或寫成或寫成MOV AX,BXSIMOV AX,BXSI 動畫演示動畫演示它有它有1616位尋址和位尋址和3232位尋址兩種情況,每種情況下基址、變位尋址兩種情況,每種情況下基址、變址寄存器的使用規(guī)定和段寄存器的默認規(guī)定與前面所述相址寄存

35、器的使用規(guī)定和段寄存器的默認規(guī)定與前面所述相同,但一種尋址方式中同,但一種尋址方式中既有基址寄存器又有變址寄存器,既有基址寄存器又有變址寄存器,而兩個寄存器默認的段寄存器又不相同時,一般規(guī)定由而兩個寄存器默認的段寄存器又不相同時,一般規(guī)定由基基址寄存器址寄存器來決定默認哪一個段寄存器作段基址指針來決定默認哪一個段寄存器作段基址指針。 基址加變址尋址主要用于二維數(shù)組元素的檢索和二重基址加變址尋址主要用于二維數(shù)組元素的檢索和二重循環(huán)等。循環(huán)等。3.2 尋址方式尋址方式 (9)基址加比例變址尋址基址加比例變址尋址在這種方式下在這種方式下, ,EA=EA=變址寄存器變址寄存器 比例因子比例因子+基址寄

36、存器基址寄存器 它只有它只有3232位尋址一種情況。位尋址一種情況。格式舉例:格式舉例:MOV ECX,EDXMOV ECX,EDX* *8EAX ;8EAX ;或或MOV ECX,EDXMOV ECX,EDX* *8+EAX8+EAXMOV AX,EBXMOV AX,EBX* *4ESI ;4ESI ;或或MOV AX,EBXMOV AX,EBX* *4+ESI4+ESI 這種方式主要用于數(shù)組元素大小為這種方式主要用于數(shù)組元素大小為2/4/82/4/8字節(jié)時字節(jié)時的二維數(shù)組檢索操作等場合。的二維數(shù)組檢索操作等場合。3.2 尋址方式尋址方式 (10)帶位移的基址加變址尋址帶位移的基址加變址尋址

37、在這種方式下:在這種方式下:EA=EA=變址寄存器變址寄存器+基址寄存器基址寄存器+位移量位移量 這種方式也分這種方式也分1616位尋址和位尋址和3232位尋址兩種情況。變址、位尋址兩種情況。變址、基址寄存器的使用約定和對段寄存器的默認約定與前基址寄存器的使用約定和對段寄存器的默認約定與前面所述相同。格式舉例:面所述相同。格式舉例:MOV AX,BX+DI+MASKMOV AX,BX+DI+MASK 或或 MOVAX,MASKBXDIMOVAX,MASKBXDIADD EDX,ESIEBP+0FFFF000HADD EDX,ESIEBP+0FFFF000H 或或 ADD EDX,0FFFF00

38、0HESIEBPADD EDX,0FFFF000HESIEBP 以第以第1 1條指令為例,給出了帶位移的基址加變址尋條指令為例,給出了帶位移的基址加變址尋址方式的執(zhí)行過程的址方式的執(zhí)行過程的動畫演示動畫演示。 這種尋址方式也是主要用于二維數(shù)組操作,位移這種尋址方式也是主要用于二維數(shù)組操作,位移量即為數(shù)組起始地址。量即為數(shù)組起始地址。3.2 尋址方式尋址方式 (11)帶位移的基址加變址比例尋址帶位移的基址加變址比例尋址這種方式將偏移地址四元素都用上了,即:這種方式將偏移地址四元素都用上了,即:EA=EA=變址寄存器變址寄存器 比例因子比例因子+基址寄存器基址寄存器+位移量位移量 它它只有只有32

39、32位尋址位尋址一種情況。各種約定和默認情況同一種情況。各種約定和默認情況同前所述。前所述。格式舉例:格式舉例:INC EDIINC EDI* *8ECX+40 ;8ECX+40 ;或或INC EDIINC EDI* *8+ECX+408+ECX+40 當二維數(shù)組的數(shù)組元素大小為當二維數(shù)組的數(shù)組元素大小為2/4/82/4/8字節(jié),且數(shù)組字節(jié),且數(shù)組起始地址不為起始地址不為0 0時,適于用這種尋址方式進行數(shù)組檢索時,適于用這種尋址方式進行數(shù)組檢索操作。操作。訪存操作類型訪存操作類型 默認段寄存器默認段寄存器 允許超越的段寄存器允許超越的段寄存器 偏移地址寄存器偏移地址寄存器取指令代碼取指令代碼

40、CS CS 無無 (E E)IPIP堆棧操作堆棧操作 SS SS 無無 (E)SP(E)SP目的串數(shù)據(jù)訪問目的串數(shù)據(jù)訪問 ES ES 無無 (E)DI(E)DI通用數(shù)據(jù)訪問通用數(shù)據(jù)訪問 DS CSDS CS、SSSS、ESES、FSFS、GS GS 偏移地址偏移地址以以(E)BP(E)BP、(E)SP(E)SP間接尋址的指令間接尋址的指令 SSSSCSCS、DSDS、ESES、FSFS、GSGS偏移地址偏移地址源串數(shù)據(jù)訪問源串數(shù)據(jù)訪問 DS CSDS CS、SSSS、ESES、FSFS、GS (E)SIGS (E)SI3.2 尋址方式尋址方式 3 存儲器尋址時的段約定存儲器尋址時的段約定以下的

41、默認段選擇不能被超越:以下的默認段選擇不能被超越: 必須從代碼段必須從代碼段取指令取指令; 在串操作中的在串操作中的目的串目的串必須存儲在由必須存儲在由ESES寄存器指向的寄存器指向的數(shù)據(jù)段數(shù)據(jù)段;1.1.推入和彈出推入和彈出操作必須總是引用操作必須總是引用SSSS段。段。3.3 IA-32的指令格式的指令格式nPentium指令系統(tǒng)概貌指令系統(tǒng)概貌 PentiumPentium的指令系統(tǒng)是在的指令系統(tǒng)是在80X8680X86系列指令系統(tǒng)的基礎系列指令系統(tǒng)的基礎上逐步發(fā)展而形成的,在代碼級具有向上兼容性。它增上逐步發(fā)展而形成的,在代碼級具有向上兼容性。它增加了指令的種類,增強了一些指令的功能,

42、提供了加了指令的種類,增強了一些指令的功能,提供了3232位位尋址方式和尋址方式和3232位操作方式,并且包含全部浮點運算指令。位操作方式,并且包含全部浮點運算指令。 PentiumPentium指令的操作數(shù)可以是指令的操作數(shù)可以是0 03 3個,根據(jù)尋址方個,根據(jù)尋址方式不同,可直接包含在指令中,也可存于寄存器或存儲式不同,可直接包含在指令中,也可存于寄存器或存儲器中。器中。 每條指令的長度因指令而異,平均指令長度為每條指令的長度因指令而異,平均指令長度為3.23.2字節(jié)。字節(jié)。 指令的操作數(shù)寬度可以是指令的操作數(shù)寬度可以是8 8位、位、1616位、位、3232位,尋址位,尋址寬度可以是寬度

43、可以是1616位或位或3232位。位。3.3 IA-32的指令格式的指令格式1、指令格式:、指令格式:Label(標號標號): mnemonic(助記符助記符) argument1(參數(shù)參數(shù)1) argument2(參數(shù)參數(shù)2)argument3(參數(shù)參數(shù)3)其中:其中:p標號標號(Label):在一標識符后面跟冒號在一標識符后面跟冒號(:);p助記符助記符(mnemonic):一類具有相同功能的指令操作碼的一類具有相同功能的指令操作碼的保留名;保留名;p操作數(shù)參數(shù)操作數(shù)參數(shù)(argument):任選,可以有任選,可以有03個,它們可個,它們可能是文字或數(shù)據(jù)項的標識符、操作數(shù)標識符,或者是寄存

44、能是文字或數(shù)據(jù)項的標識符、操作數(shù)標識符,或者是寄存器的保留名,或者是在程序的另一部分中聲明的賦予數(shù)據(jù)器的保留名,或者是在程序的另一部分中聲明的賦予數(shù)據(jù)項的標識符。項的標識符。 LOADREG:ADD EAX, 34H1、指令格式、指令格式 采用采用變字節(jié)(變字節(jié)(116)指令格式指令格式字段字段1 1字段字段2 2字段字段3 3mod r/mmod r/m字段字段4 4s-i-bs-i-b字段字段5 5displdispl字段字段6 6datadata1 1字節(jié)字節(jié)1 1字節(jié)字節(jié)寄存器寄存器/ /存儲器尋址存儲器尋址方式說明符字段方式說明符字段 主尋址字節(jié)主尋址字節(jié), ,規(guī)定操作數(shù)的規(guī)定操作數(shù)

45、的尋址方式,包尋址方式,包括操作數(shù)的存括操作數(shù)的存放位置和存儲放位置和存儲器中操作數(shù)器中操作數(shù)EAEA的計算方法等的計算方法等比例比例- - 變變址址- - 基址基址字節(jié),為字節(jié),為第二尋址第二尋址字節(jié)字節(jié)位移量字段位移量字段, ,屬存儲器地屬存儲器地址的一部分。址的一部分。位移量足夠位移量足夠小時,通常小時,通常采用帶符號采用帶符號的的8 8位整數(shù),位整數(shù),CPUCPU自動將自動將它擴展到它擴展到1616位或位或3232位位立即數(shù)字段立即數(shù)字段8 8位立即數(shù)與位立即數(shù)與16/3216/32位操作位操作數(shù)一起使用時,數(shù)一起使用時,CPUCPU自動將其自動將其擴展至符號相擴展至符號相同的同的16

46、/3216/32位位數(shù)。同理也可數(shù)。同理也可將將1616位立即數(shù)位立即數(shù)擴展至擴展至3232位位1 14 4字節(jié)字節(jié)1 12 2字節(jié)字節(jié)前綴前綴PrefixPrefix操作碼操作碼OP codeOP code0,1,2,40,1,2,4字節(jié)字節(jié)0,1,2,40,1,2,4字節(jié)字節(jié)規(guī)定指令的規(guī)定指令的操作性質,操作性質,包括操作數(shù)包括操作數(shù)類型、操作類型、操作數(shù)傳送方向、數(shù)傳送方向、寄存器編碼寄存器編碼或符號擴展或符號擴展等等用于修改指令用于修改指令操作的某些屬操作的某些屬性性, ,有有5 5類前綴:類前綴:段超越前綴段超越前綴操作數(shù)寬度操作數(shù)寬度 前綴前綴地址寬度前地址寬度前 綴綴重復前綴重復

47、前綴總線鎖定前總線鎖定前 綴綴3.3 IA-32的指令格式的指令格式n2. 指令分類指令分類PentiumPentium指令系統(tǒng)分為:指令系統(tǒng)分為:整數(shù)指令整數(shù)指令-最常用部分最常用部分浮點數(shù)指令浮點數(shù)指令操作系統(tǒng)型指令操作系統(tǒng)型指令3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用PentiumPentium的整數(shù)指令按功能分為:的整數(shù)指令按功能分為:4.4.位操作指令位操作指令5.5.控制轉移指令控制轉移指令10.10.高級語言指令高級語言指令1.1.數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令2.2.算術運算指令算術運算指令6.6.邏輯運算與移位指令邏輯運算與移位指令3.3.串操作指令串操作指令7.7.標志操作指

48、令標志操作指令8.8.按條件設置字節(jié)指令按條件設置字節(jié)指令9.9.處理器控制指令處理器控制指令1. 1. 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令n數(shù)據(jù)傳送數(shù)據(jù)傳送是計算機中最基本、最常用、最重是計算機中最基本、最常用、最重要的一類操作。如:要的一類操作。如:n這類指令尋址方式最豐富,除這類指令尋址方式最豐富,除POPFPOPF外,均不外,均不影響標志寄存器的標志位。影響標志寄存器的標志位。在實際程序中,它的使用頻率最高。在實際程序中,它的使用頻率最高。 各種初始化操作各種初始化操作 取操作數(shù)取操作數(shù) 保存結果保存結果3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 用于實現(xiàn)存儲器與寄存寄用于實現(xiàn)存儲器與

49、寄存寄存器與寄存累加器與存器與寄存累加器與I/OI/O端口之間的數(shù)據(jù)傳遞端口之間的數(shù)據(jù)傳遞數(shù)據(jù)傳送指令主要包括:數(shù)據(jù)傳送指令主要包括:q 通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令。如數(shù)值傳送類指令。如數(shù)值傳送類指令(MOV)(MOV)、裝入有裝入有效地址指令效地址指令(LEA)(LEA)、段裝入指令、交換類指令段裝入指令、交換類指令(XCHG(XCHG和和BSWAP)BSWAP)、查表轉換指令查表轉換指令(XLAT)(XLAT)等。等。q 堆棧指令堆棧指令。如。如PUSHPUSH類類/POP/POP類指令等。類指令等。q 數(shù)據(jù)類型變換指令數(shù)據(jù)類型變換指令。如數(shù)據(jù)寬度變換指令,帶符號數(shù)符。如數(shù)據(jù)寬度變換

50、指令,帶符號數(shù)符號位擴展號位擴展/ /無符號數(shù)位擴展指令等。無符號數(shù)位擴展指令等。q I/OI/O指令指令。如。如ININ類類/OUT/OUT類指令等。類指令等。3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 立立即即數(shù)數(shù)通用寄存器通用寄存器(EAXEAX、EBXEBX、ECXECX、EDXEDX、 EBPEBP、ESPESP、ESIESI、EDI)EDI)CSCS存存儲儲器器段寄存器段寄存器(SS(SS、DSDS、ESES、FSFS、GS)GS)MOVMOV指令允許的傳送關系指令允許的傳送關系 傳送指令傳送指令n指令操作:指令操作:

51、( (源操作數(shù)源操作數(shù))目的操作數(shù)目的操作數(shù) n指令格式:指令格式:MOV MOV 目的操作數(shù),源操作數(shù)目的操作數(shù),源操作數(shù)n尋址規(guī)定:尋址規(guī)定: REG/MEM/SREGREG/MEM/SREG,REGREG REG/MEM REG/MEM, SREGSREG REG/SREG REG/SREG, MEM MEM REG/MEM REG/MEM, IMMIMM3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 IMMIMM8/16/32位位立即數(shù)立即數(shù)REGREG8/16/32位通位通用寄存器用寄存器MEMMEM8/16/32位位存儲器存儲器SREGSREG段寄存器段寄存器使用說明:使用說

52、明:n源操作數(shù)和目的操作數(shù)的源操作數(shù)和目的操作數(shù)的類型必須一致類型必須一致。n目的操作數(shù)目的操作數(shù)不能為立即數(shù)不能為立即數(shù)。nCSCS和和(E)IP(E)IP均不能用作指令的目的寄存器。均不能用作指令的目的寄存器。n段寄存器間不能直接傳送,也不能直接將立段寄存器間不能直接傳送,也不能直接將立即數(shù)送給段寄存器。即數(shù)送給段寄存器。n源操作數(shù)為立即數(shù)源操作數(shù)為立即數(shù), ,而目的操作數(shù)類型不確而目的操作數(shù)類型不確定時定時, ,要給目的操作數(shù)加類型說明。要給目的操作數(shù)加類型說明。n源操作數(shù)和目的操作數(shù)源操作數(shù)和目的操作數(shù)不能同為存儲器操作數(shù)不能同為存儲器操作數(shù)。 目的操作數(shù)目的操作數(shù), , 源操作數(shù)源操

53、作數(shù) REG/MEM/SREGREG/MEM/SREG,REGREG REG/MEM REG/MEM, SREGSREG REG/SREG REG/SREG, MEM MEM REG/MEM REG/MEM, IMMIMM3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 MOV DS MOV DS,100100 MOV 1000H MOV 1000H,23H23H錯。錯。源、目的操作數(shù)不能同為存儲器尋址。源、目的操作數(shù)不能同為存儲器尋址。 MOV 1000H MOV 1000H,2000H2000H錯。立即數(shù)不能直接賦給段寄存器。錯。立即數(shù)不能直接賦給段寄存器。錯。目的操作數(shù)長度不確定。錯

54、。目的操作數(shù)長度不確定。 MOV DATA MOV DATA,1133H1133H MOV CS MOV CS,AX AX 依賴于依賴于DATADATA的定義的定義錯。不能用傳送指令改變代碼段寄存器。錯。不能用傳送指令改變代碼段寄存器。 MOV AX MOV AX,0100H+BX+BP0100H+BX+BP錯。地址寄存器不能同為基址寄存器。錯。地址寄存器不能同為基址寄存器。 例例2.32.3 識別下列指令的正確性,對錯誤的指令,識別下列指令的正確性,對錯誤的指令,說明錯誤的原因。說明錯誤的原因。3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 MOV AXMOV AX,100100MOV

55、 DSMOV DS,AXAXMOV MOV WORD PTRWORD PTR 1000H1000H,23H23HMOV AXMOV AX,2000H2000HMOV 1000HMOV 1000H,AXAX 交換指令交換指令n操作:操作: ( (目的操作數(shù)目的操作數(shù)) ) ( (源操作數(shù)源操作數(shù)) )n格式:格式:XCHG XCHG 目的操作數(shù),源操作數(shù)目的操作數(shù),源操作數(shù)REG/MEMREG/MEM, REGREG REG REG, MEMMEMn說明:說明: 基本用法同基本用法同MOVMOV指令指令; ; 當源或目的操作數(shù)為當源或目的操作數(shù)為MEMMEM操作數(shù)時,會自動操作數(shù)時,會自動 激活

56、激活LOCKLOCK信號信號, ,該特性常用于多機、多任務該特性常用于多機、多任務 或多用戶系統(tǒng)中的臨界段或多用戶系統(tǒng)中的臨界段( (共享資源共享資源) )訪問。訪問。3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 是是80486/Pentium CPU 80486/Pentium CPU 中中一條支持多機操作的指令一條支持多機操作的指令 例例2.42.4 臨界段訪問(測試與置操作)臨界段訪問(測試與置操作)3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 TESTTEST:MOV ALMOV AL,0FFH0FFH XCHG ALXCHG AL,SEMAPHORE ;SEMAPHO

57、RE ;讀信號燈并置讀信號燈并置 AND ALAND AL,AL AL ;產(chǎn)生條件碼;產(chǎn)生條件碼 JNZ TEST JNZ TEST ;忙時等待;忙時等待 ( (臨界段程序臨界段程序) ) MOV AL MOV AL,0 0 MOV SEMAPHOREMOV SEMAPHORE,AL AL ;清信號燈;清信號燈 I/O指令指令 說明:說明:I/OI/O端口有兩種尋址方式端口有兩種尋址方式 直接尋址直接尋址, ,尋址范圍為尋址范圍為0 0255255; ; 間接尋址間接尋址, ,尋址范圍為尋址范圍為0 02 21616-1-1。 輸入指令輸入指令 格式:格式:IN IN 累加器累加器, , 端口

58、端口 AL/AX/EAXAL/AX/EAX,IMM8IMM8 AL/AX/EAX AL/AX/EAX,DXDX 操作:操作: AL/AX/EAX(I/OAL/AX/EAX(I/O端口端口) )直接尋址直接尋址: : 指令給出的立即指令給出的立即數(shù)是數(shù)是I/OI/O端口地址端口地址間接尋址間接尋址: :DXDX寄存器給出的寄存器給出的是是I/OI/O端口地址端口地址3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 輸出指令輸出指令n格式:格式:OUT OUT 端口端口, , 累加器累加器 IMM8, AL/AX/EAXIMM8, AL/AX/EAX DX , AL/AX/EAX DX , A

59、L/AX/EAXn操作:(操作:(AL/AX/EAXAL/AX/EAX)I/OI/O端口端口3.4 3.4 通用整數(shù)指令及應用通用整數(shù)指令及應用 n說明說明: : XLATXLAT是一條是一條隱含尋址隱含尋址的指令。隱的指令。隱含兩個操作數(shù):含兩個操作數(shù):DSDS:(E)BX(E)BX存放表基址,存放表基址,ALAL存放查表參數(shù)存放查表參數(shù)。使用前要給隱含操作數(shù)賦。使用前要給隱含操作數(shù)賦初值。初值。 查表指令查表指令n 格式:格式: XLATXLATn 操作:操作: (EBX)+(AL)AL(EBX)+(AL)AL (BX)+(AL)AL (BX)+(AL)AL3.4 3.4 通用整數(shù)指令及應

60、用通用整數(shù)指令及應用 例例2.52.5 內(nèi)存中自內(nèi)存中自TABLETABLE開始的開始的1616個單元連續(xù)存?zhèn)€單元連續(xù)存放著自然數(shù)放著自然數(shù)0 0到到1515的平方值的平方值( (構成一個平方表構成一個平方表) ),任給一整數(shù)任給一整數(shù)M M在在XXXX單元中單元中( (該數(shù)為該數(shù)為0M15)0M15),查,查表求表求M M的平方值,并將結果存入的平方值,并將結果存入YYYY單元中。單元中。解解: :LEA BXLEA BX,TABLETABLEMOVMOV AL AL,XXXX XLATXLAT MOVMOV YY YY,ALALTABLE 0+1 1+2 4+3 9+15 225XX 53

溫馨提示

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

評論

0/150

提交評論