版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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ù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用3.5 x87 FPU 指令指令3.6 關(guān)于指令系統(tǒng)的關(guān)于指令系統(tǒng)的說(shuō)明說(shuō)明3.7 指令應(yīng)用指令應(yīng)用舉例舉例以以Pentium MPU 為例進(jìn)行講解為例進(jìn)行講解3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型n Pentium在其內(nèi)部定點(diǎn)處理單元在其內(nèi)部定點(diǎn)處理
2、單元CPU和浮點(diǎn)處和浮點(diǎn)處理單元理單元FPU的支持下,共可處理的支持下,共可處理7類數(shù)據(jù):類數(shù)據(jù):p 1. 無(wú)符號(hào)二進(jìn)制數(shù)無(wú)符號(hào)二進(jìn)制數(shù)p 2. 帶符號(hào)的二進(jìn)制定點(diǎn)整數(shù)帶符號(hào)的二進(jìn)制定點(diǎn)整數(shù)p 3. 浮點(diǎn)數(shù)浮點(diǎn)數(shù)p 4. BCD碼數(shù)碼數(shù)p 5. 串?dāng)?shù)據(jù)串?dāng)?shù)據(jù)p 6. ASCII碼數(shù)據(jù)碼數(shù)據(jù)p 7. 指針數(shù)據(jù)指針數(shù)據(jù)3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 1.無(wú)符號(hào)二進(jìn)制數(shù)無(wú)符號(hào)二進(jìn)制數(shù)(序數(shù)序數(shù))n這類數(shù)不帶任何這類數(shù)不帶任何符號(hào)符號(hào)信息,只含有量值域,信息,只含有量值域,僅僅CPU支持。分為支持。分為:p字節(jié):字節(jié):任何邏輯地址上的任何邏輯地址上的8位相鄰位串。位相鄰位串。p字:字:任何字節(jié)地址開
3、始的任何字節(jié)地址開始的2個(gè)相鄰字節(jié),個(gè)相鄰字節(jié),低字節(jié)地低字節(jié)地址址為該字地址。為該字地址。p雙字:雙字:任何字節(jié)地址開始的任何字節(jié)地址開始的2個(gè)相鄰字,即個(gè)相鄰字,即4個(gè)相個(gè)相鄰字節(jié),鄰字節(jié),最小字節(jié)地址最小字節(jié)地址為雙字的地址。為雙字的地址。p四字:四字:任何字節(jié)地址開始的任何字節(jié)地址開始的4個(gè)相鄰字,即個(gè)相鄰字,即8個(gè)相個(gè)相鄰字節(jié)。鄰字節(jié)。p雙四字:雙四字:任何字節(jié)地址開始的任何字節(jié)地址開始的8個(gè)相鄰字,即個(gè)相鄰字,即16個(gè)個(gè)相鄰字節(jié)。相鄰字節(jié)。3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 1.無(wú)符號(hào)二進(jìn)制數(shù)無(wú)符號(hào)二進(jìn)制數(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.帶符號(hào)的二進(jìn)制定點(diǎn)整數(shù)帶符號(hào)的二進(jìn)制定點(diǎn)整數(shù)(整數(shù)整數(shù))p這類數(shù)均以這類數(shù)均以補(bǔ)碼補(bǔ)碼表示表示,有有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支持支持,有有單精度單精度、雙精度雙精度和和擴(kuò)展精度擴(kuò)展精度三種形式:三種形式:3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 3.浮點(diǎn)數(shù)浮點(diǎn)數(shù)(實(shí)數(shù)實(shí)數(shù)) 單精度數(shù)單精度數(shù) 雙精度數(shù)雙精度數(shù) 擴(kuò)展精度數(shù)擴(kuò)展精度數(shù)1 179 78 64 63 079 78 64 63 0符號(hào)位
6、符號(hào)位階階 碼碼有有 效效 數(shù)數(shù). .符號(hào)位符號(hào)位階階 碼碼有有 效效 數(shù)數(shù)1.1.63 62 52 51 063 62 52 51 031 30 23 22 031 30 23 22 0符號(hào)位符號(hào)位階階 碼碼有有 效效 數(shù)數(shù)1.1.3.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 3.浮點(diǎn)數(shù)浮點(diǎn)數(shù)(實(shí)數(shù)實(shí)數(shù))n浮點(diǎn)數(shù)格式浮點(diǎn)數(shù)格式的兩點(diǎn)說(shuō)明:的兩點(diǎn)說(shuō)明:p3種浮點(diǎn)數(shù)的有效數(shù)字段都做了種浮點(diǎn)數(shù)的有效數(shù)字段都做了規(guī)格化處理規(guī)格化處理,其整數(shù)位,其整數(shù)位總是總是1。但需注意。但需注意,只有擴(kuò)展精度格式的整數(shù)位只有擴(kuò)展精度格式的整數(shù)位1真的存真的存在,其余兩種格式下整數(shù)位在,其余兩種格式下整數(shù)位1是隱含的,并不真的
7、被存是隱含的,并不真的被存放起來(lái)。放起來(lái)。p格式中的階碼是以格式中的階碼是以偏置形式存放偏置形式存放的的(即其階碼要加上一即其階碼要加上一個(gè)常數(shù)偏置值才是格式階碼個(gè)常數(shù)偏置值才是格式階碼),且偏置后的格式階碼恒為且偏置后的格式階碼恒為正數(shù)。這樣有利于簡(jiǎn)化符點(diǎn)數(shù)大小的比較過(guò)程:對(duì)兩正數(shù)。這樣有利于簡(jiǎn)化符點(diǎn)數(shù)大小的比較過(guò)程:對(duì)兩個(gè)相同格式的實(shí)數(shù)進(jìn)行比較時(shí),就像對(duì)兩個(gè)無(wú)符號(hào)二個(gè)相同格式的實(shí)數(shù)進(jìn)行比較時(shí),就像對(duì)兩個(gè)無(wú)符號(hào)二進(jìn)制整數(shù)進(jìn)行比較一樣方便,當(dāng)從高位到低位比較兩進(jìn)制整數(shù)進(jìn)行比較一樣方便,當(dāng)從高位到低位比較兩個(gè)格式階碼時(shí),若某位的階碼有大小之分,就不用再個(gè)格式階碼時(shí),若某位的階碼有大小之分,就不用
8、再比較下去了。比較下去了。由于三種浮點(diǎn)數(shù)格式的由于三種浮點(diǎn)數(shù)格式的階碼位數(shù)階碼位數(shù)不同,其數(shù)值范圍也不同,其數(shù)值范圍也不同。為了保證統(tǒng)一偏置后的階碼恒為正數(shù),其偏置不同。為了保證統(tǒng)一偏置后的階碼恒為正數(shù),其偏置值必然也為不同正值。值必然也為不同正值。最大階碼值最大階碼值 +127 +1023 +16383+127 +1023 +16383參參 數(shù)數(shù)格格 式式單精度單精度雙精度雙精度擴(kuò)展精度擴(kuò)展精度格式總寬度(位)格式總寬度(位) 32 64 8032 64 80符號(hào)位位數(shù)符號(hào)位位數(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 在作了上述偏置處理后,進(jìn)行浮點(diǎn)數(shù)運(yùn)算時(shí),一個(gè)數(shù)的在作了上述偏置處理后,進(jìn)行浮點(diǎn)數(shù)運(yùn)算時(shí),一個(gè)數(shù)的真階碼真階碼需要將其格式階碼減去偏置值來(lái)獲得。需要將其格式階碼減去偏置值來(lái)獲得。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ù),且最大長(zhǎng)度為且最大長(zhǎng)度為80位,最多可處理位,最多可處理20位位BCD碼數(shù)。碼數(shù)。5.串?dāng)?shù)據(jù)串?dāng)?shù)據(jù) 這類數(shù)據(jù)僅這類數(shù)據(jù)僅CPUCPU支持。包括支持。包括: : 位串位串: : 字節(jié)字節(jié)/ /字字/ /雙字串雙字串: :是從任何字節(jié)的任何位開始的相鄰是從任何字節(jié)的任何位開始的相鄰位的序列,最長(zhǎng)可達(dá)位的序列,最長(zhǎng)可達(dá)2 23232-1-1位。位。是字節(jié)是字節(jié)/ /字字/ /雙字的相鄰序雙字的相鄰序列,最長(zhǎng)可達(dá)列,最長(zhǎng)可達(dá)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ù)包括近指針和遠(yuǎn)指針兩種包括近指針和遠(yuǎn)指針兩種: : 近指針近指針即即3232位指針位指針, ,是一個(gè)是一個(gè)3232位的段內(nèi)位的段內(nèi)偏移量偏移量, ,段內(nèi)尋址用。段內(nèi)尋址用。 遠(yuǎn)指針遠(yuǎn)指針即即4848位指針位指針, ,由由1616位選擇符和位選擇符和3232位偏移量組成,用于跨段訪問(wèn)。位偏移量組成,用于跨段訪問(wèn)。關(guān)于數(shù)據(jù)類型的兩點(diǎn)說(shuō)明:關(guān)于數(shù)據(jù)類型的兩點(diǎn)說(shuō)明:(1)(1)在上述各類型數(shù)據(jù)中,基本的數(shù)據(jù)類型仍是字節(jié)、字和在上述各類型數(shù)據(jù)中,基本的數(shù)據(jù)類型仍是字節(jié)、字和雙字。一般應(yīng)盡可能將雙字。一般應(yīng)盡可能將字字操作對(duì)準(zhǔn)
12、于操作對(duì)準(zhǔn)于偶地址偶地址,將,將雙字雙字操作對(duì)操作對(duì)準(zhǔn)于準(zhǔn)于4 4的整數(shù)倍地址的整數(shù)倍地址。但也允許不對(duì)準(zhǔn)操作,以便在數(shù)據(jù)結(jié)。但也允許不對(duì)準(zhǔn)操作,以便在數(shù)據(jù)結(jié)構(gòu)的處理上和存儲(chǔ)器的有效利用上給系統(tǒng)設(shè)計(jì)人員和用戶提構(gòu)的處理上和存儲(chǔ)器的有效利用上給系統(tǒng)設(shè)計(jì)人員和用戶提供最大的靈活性。不過(guò),對(duì)準(zhǔn)和不對(duì)準(zhǔn)獲得的數(shù)據(jù)傳遞速度供最大的靈活性。不過(guò),對(duì)準(zhǔn)和不對(duì)準(zhǔn)獲得的數(shù)據(jù)傳遞速度不一樣:對(duì)準(zhǔn)的字和字節(jié)可一次傳遞完,而未對(duì)準(zhǔn)的字和雙不一樣:對(duì)準(zhǔn)的字和字節(jié)可一次傳遞完,而未對(duì)準(zhǔn)的字和雙字需幾次才能傳遞完。字需幾次才能傳遞完。(2)(2)對(duì)于字和雙字?jǐn)?shù)據(jù),對(duì)于字和雙字?jǐn)?shù)據(jù),8048680486是采用低端地址方式來(lái)存
13、儲(chǔ)的。是采用低端地址方式來(lái)存儲(chǔ)的。即字?jǐn)?shù)據(jù)被存儲(chǔ)在兩個(gè)相鄰的字節(jié)單元之中,低位字節(jié)在低即字?jǐn)?shù)據(jù)被存儲(chǔ)在兩個(gè)相鄰的字節(jié)單元之中,低位字節(jié)在低地址單元,高位字節(jié)在高地址單元;雙字?jǐn)?shù)據(jù)存儲(chǔ)在四個(gè)連地址單元,高位字節(jié)在高地址單元;雙字?jǐn)?shù)據(jù)存儲(chǔ)在四個(gè)連續(xù)字節(jié)單元中,最低位字節(jié)在最低地址單元,最高字節(jié)在最續(xù)字節(jié)單元中,最低位字節(jié)在最低地址單元,最高字節(jié)在最高地址單元。而字或雙字?jǐn)?shù)據(jù)的地址是指最低位字節(jié)所在的高地址單元。而字或雙字?jǐn)?shù)據(jù)的地址是指最低位字節(jié)所在的單元地址。單元地址。3.2 IA-32指令的尋址方式指令的尋址方式3.2.1 尋址方式和有效地址概念尋址方式和有效地址概念3.2.2 11種尋址方式種
14、尋址方式3.2.3 存儲(chǔ)器尋址時(shí)的段約定存儲(chǔ)器尋址時(shí)的段約定3.2.4 應(yīng)用舉例應(yīng)用舉例3.2 尋址方式尋址方式 1.尋址方式和有效地址概念尋址方式和有效地址概念 尋址方式尋址方式就是尋找指令中操作數(shù)地址的方式。操作數(shù)就是尋找指令中操作數(shù)地址的方式。操作數(shù)所在地址有三種可能:所在地址有三種可能: 直接包含在指令中直接包含在指令中,即指令的操作數(shù)部分就是操作數(shù),即指令的操作數(shù)部分就是操作數(shù)本身。這種操作數(shù)叫立即數(shù),對(duì)應(yīng)的指令尋址方式稱為本身。這種操作數(shù)叫立即數(shù),對(duì)應(yīng)的指令尋址方式稱為立即數(shù)尋址立即數(shù)尋址。包含在包含在CPUCPU的某個(gè)內(nèi)部寄存器中的某個(gè)內(nèi)部寄存器中。這時(shí)指令中的操作數(shù)。這時(shí)指令中
15、的操作數(shù)部分是部分是CPUCPU的一個(gè)寄存器,這種指令尋址方式稱為的一個(gè)寄存器,這種指令尋址方式稱為寄存器寄存器尋址尋址。在內(nèi)存儲(chǔ)器中在內(nèi)存儲(chǔ)器中。這時(shí)指令的操作數(shù)部分包含著該操作。這時(shí)指令的操作數(shù)部分包含著該操作數(shù)所在的內(nèi)存地址。這種指令尋址方式稱為數(shù)所在的內(nèi)存地址。這種指令尋址方式稱為存儲(chǔ)器尋址存儲(chǔ)器尋址。3.2 尋址方式尋址方式 1.尋址方式和有效地址概念尋址方式和有效地址概念 在在PentiumPentium系列系列MPUMPU中,內(nèi)存實(shí)際地址中,內(nèi)存實(shí)際地址(PA)(PA)由段基由段基地址和段內(nèi)偏移地址兩部分組成。地址和段內(nèi)偏移地址兩部分組成。 為了適應(yīng)處理各種數(shù)據(jù)結(jié)構(gòu)的需要,段內(nèi)偏
16、移地為了適應(yīng)處理各種數(shù)據(jù)結(jié)構(gòu)的需要,段內(nèi)偏移地址可由以下幾部分組合而成:址可由以下幾部分組合而成:v 基址寄存器內(nèi)容基址寄存器內(nèi)容v 變址寄存器內(nèi)容變址寄存器內(nèi)容v 比例因子比例因子v 位移量位移量 這四個(gè)基本部分稱為偏移地址四元素,一般又將這四個(gè)基本部分稱為偏移地址四元素,一般又將由這四種元素組合形成的偏移地址稱為有效地址由這四種元素組合形成的偏移地址稱為有效地址EAEA。EA=EA=基址基址+(+(變址變址比例因子比例因子)+)+位移量位移量3.2 尋址方式尋址方式 1.尋址方式和有效地址概念尋址方式和有效地址概念有效地址元素有效地址元素1616位尋址位尋址3232位尋址位尋址基址寄存器基
17、址寄存器 BX,BP BX,BP 任何任何3232位通用寄存器位通用寄存器變址寄存器變址寄存器 SI,DI SI,DI 除除ESPESP外的任何外的任何3232位通用寄存器位通用寄存器比例因子比例因子 無(wú)(或無(wú)(或1 1) 1 1,2 2,4 4,8 8位移量位移量 0 0,8 8,1616位位 0 0,8 8,3232位位1616位和位和3232位尋址時(shí)的四元素定義位尋址時(shí)的四元素定義3.2 尋址方式尋址方式 1.尋址方式和有效地址概念尋址方式和有效地址概念尋址過(guò)程尋址過(guò)程( (地址轉(zhuǎn)換過(guò)程地址轉(zhuǎn)換過(guò)程) )有效地址計(jì)算有效地址計(jì)算變址變址位移位移基址基址比例因子比例因子+ +3232位位有
18、效地址有效地址31 031 0BE3BE3BE0BE0A31A31A2A232 32 位位32 32 位位1313位位通過(guò)段描述符通過(guò)段描述符提供段基址提供段基址段寄存器段寄存器選擇符選擇符 TITIRPLRPL15 3 2 1 015 3 2 1 0分段分段部件部件線性線性地址地址物理物理存儲(chǔ)器存儲(chǔ)器分頁(yè)分頁(yè)部件部件( (可選可選) )物理物理地址地址邏輯地址邏輯地址( (虛擬虛擬) )(CS,DS,ES,SS, FS,GSCS,DS,ES,SS, FS,GS)不分頁(yè)不分頁(yè)尋址過(guò)程尋址過(guò)程( (地址轉(zhuǎn)換過(guò)程地址轉(zhuǎn)換過(guò)程) )有效地址計(jì)算有效地址計(jì)算變址變址位移位移基址基址比例因子比例因子+
19、+3232位位有效地址有效地址31 031 0BE3BE3BE0BE0A31A31A2A2BE3BE3BE0BE0A31A31A2A232 32 位位32 32 位位1313位位通過(guò)段描述符通過(guò)段描述符提供段基址提供段基址段寄存器段寄存器選擇符選擇符 TITIRPLRPL15 3 2 1 015 3 2 1 0分段分段部件部件線性線性地址地址物理物理存儲(chǔ)器存儲(chǔ)器分頁(yè)分頁(yè)部件部件( (可選可選) )物理物理地址地址邏輯地址邏輯地址( (虛擬虛擬) )(CS,DS,ES,SS, FS,GSCS,DS,ES,SS, FS,GS)不分頁(yè)不分頁(yè)3.2 尋址方式尋址方式 2. 尋址方式尋址方式11種種 偏
20、移地址四元素可優(yōu)化組合出偏移地址四元素可優(yōu)化組合出9 9種存儲(chǔ)器尋址方式種存儲(chǔ)器尋址方式, ,加上立即數(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í)行過(guò)程的址方式的執(zhí)行過(guò)程的動(dòng)畫演示動(dòng)畫演示。3.2 尋址方式尋址
22、方式 (2)寄存器寄存器(直接直接)尋址尋址 在這種方式下在這種方式下, ,操作數(shù)包含在指令規(guī)定操作數(shù)包含在指令規(guī)定的的8 8位、位、1616位或位或3232位寄存器中。位寄存器中。例:例:MOV EAXMOV EAX,EDXEDXINC CLINC CLMOV DSMOV DS,AXAX 這種尋址方式指令編碼短,無(wú)需從存儲(chǔ)這種尋址方式指令編碼短,無(wú)需從存儲(chǔ)器取操作數(shù),故執(zhí)行速度快。器取操作數(shù),故執(zhí)行速度快。3.2 尋址方式尋址方式 (3) (存儲(chǔ)器存儲(chǔ)器)直接尋址直接尋址 在這種方式下,指令中的操作數(shù)部分直接在這種方式下,指令中的操作數(shù)部分直接給出操作數(shù)有效地址給出操作數(shù)有效地址EAEA,它
23、和操作碼一起放在,它和操作碼一起放在存儲(chǔ)器代碼段中,可以是存儲(chǔ)器代碼段中,可以是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中。假設(shè)中。假設(shè)DS=5000HDS=5000H,則此指令是將物理地址為,則此指令是將物理地址為53000H53000H單元的內(nèi)容送到單元的內(nèi)容送到ALAL寄存器,將寄存器,將53001H53001H單單元的內(nèi)容送到元的內(nèi)容送到AHAH寄存器,詳情請(qǐng)看直
24、接尋址方寄存器,詳情請(qǐng)看直接尋址方式的執(zhí)行過(guò)程的式的執(zhí)行過(guò)程的動(dòng)畫演示動(dòng)畫演示。3.2 尋址方式尋址方式 (3) (存儲(chǔ)器存儲(chǔ)器)直接尋址直接尋址 實(shí)際中對(duì)于直接尋址實(shí)際中對(duì)于直接尋址, ,如操作數(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直接尋址主要用于單個(gè)操作數(shù)的相對(duì)尋址場(chǎng)合直接尋址主要用于單個(gè)操作數(shù)的相對(duì)尋址場(chǎng)合( (如簡(jiǎn)單的標(biāo)量操作數(shù)尋址和靜分配數(shù)組的起始如簡(jiǎn)單的標(biāo)量操作數(shù)尋址和靜分配數(shù)組的起始地址尋址等地址尋址等) )。叫段默認(rèn)叫段默認(rèn)3.2 尋址方式尋址方式 (4)寄存器間接尋址寄存器間接尋址 在這種方式下在這種方式下, ,操作數(shù)放在存儲(chǔ)器中操作數(shù)放在存儲(chǔ)器中, ,但其有效地址但其有效地址EAEA放在寄存器中放在寄存器中, ,即即EA=EA=寄寄存器存器 。寄存器的使用規(guī)定在。寄存器的使用規(guī)定在1616位尋址和位尋址和3232位尋址時(shí)不一樣。位尋址時(shí)不一樣。3.2 尋址方式尋址方式 (4)寄
26、存器間接尋址寄存器間接尋址1616位尋址時(shí),偏移地址放在位尋址時(shí),偏移地址放在SISI、DIDI、BPBP或或BXBX中。中。 這時(shí)又有兩種段默認(rèn)情況:這時(shí)又有兩種段默認(rèn)情況:q若以若以SISI、DIDI、BXBX間接尋址間接尋址, ,則默認(rèn)操作數(shù)在則默認(rèn)操作數(shù)在DSDS段中。段中。 例如:例如: MOV AX,SI ;MOV AX,SI ;默認(rèn)默認(rèn)DSDS為段基址為段基址q若以若以BPBP間接尋址間接尋址, ,則默認(rèn)操作數(shù)在則默認(rèn)操作數(shù)在SSSS段中。段中。 例如:例如: MOV AX,BP ;MOV AX,BP ;默認(rèn)默認(rèn)SSSS為段基址為段基址 動(dòng)畫演示動(dòng)畫演示 如果操作數(shù)不在上述規(guī)定的
27、默認(rèn)段,而是在其他段,如果操作數(shù)不在上述規(guī)定的默認(rèn)段,而是在其他段,則必須在指令中相應(yīng)的操作數(shù)前加上段超越前綴。例如:則必須在指令中相應(yīng)的操作數(shù)前加上段超越前綴。例如:MOV AX,ES:SIMOV AX,ES:SIMOV AX,DS:BPMOV AX,DS:BP3.2 尋址方式尋址方式 (4)寄存器間接尋址寄存器間接尋址3232為尋址時(shí)為尋址時(shí),8,8個(gè)個(gè)3232位通用寄存器均可作寄存器位通用寄存器均可作寄存器 間接尋址。間接尋址。例如:例如:MOV EBX,EAX ;MOV EBX,EAX ;默認(rèn)默認(rèn)DSDS為段基址為段基址, ,傳送雙字給傳送雙字給EBXEBXMOV DX,EBX ;MO
28、V DX,EBX ;默認(rèn)默認(rèn)DSDS為段基址為段基址, ,傳送字給傳送字給DXDXMOV CH,EAX ;MOV CH,EAX ;默認(rèn)默認(rèn)DSDS為段基址為段基址, ,傳送字節(jié)給傳送字節(jié)給CHCH 除除ESPESP、EBPEBP默認(rèn)段寄存器為默認(rèn)段寄存器為SSSS外,其余外,其余6 6個(gè)通用寄存器個(gè)通用寄存器均默認(rèn)段寄存器為均默認(rèn)段寄存器為DSDS。如操作數(shù)在默認(rèn)段之外,指令中必。如操作數(shù)在默認(rèn)段之外,指令中必須加段超越前綴。須加段超越前綴。 寄存器間接尋址的應(yīng)用場(chǎng)合與直接尋址的應(yīng)用場(chǎng)合相寄存器間接尋址的應(yīng)用場(chǎng)合與直接尋址的應(yīng)用場(chǎng)合相似,當(dāng)更靈活。似,當(dāng)更靈活。3.2 尋址方式尋址方式 (5)
29、基址尋址基址尋址 在這種方式下在這種方式下, ,EA=EA=基址寄存器基址寄存器+位移量位移量。其中。其中位移量一定要為常數(shù)位移量一定要為常數(shù), ,且跟隨在操作碼之后且跟隨在操作碼之后, ,與操作與操作碼一起存放在代碼段中。碼一起存放在代碼段中。1616位尋址情況下位尋址情況下,BX,BX和和BPBP作為基址寄存器。在缺省作為基址寄存器。在缺省段超越前綴時(shí)段超越前綴時(shí),BX,BX以以DSDS作為默認(rèn)段寄存器作為默認(rèn)段寄存器,BP,BP以以SSSS作為作為默認(rèn)段寄存器。位移量可為默認(rèn)段寄存器。位移量可為8 8位或位或1616位;位;3232位尋址情況下,位尋址情況下,8 8個(gè)個(gè)3232位通用寄存
30、器均可作基址位通用寄存器均可作基址寄存器,其中寄存器,其中ESPESP、EBPEBP以以SSSS為默認(rèn)段寄存器,其余為默認(rèn)段寄存器,其余6 6個(gè)通用寄存器均以個(gè)通用寄存器均以DSDS為默認(rèn)段寄存器。位移量為為默認(rèn)段寄存器。位移量為8 8位位或或3232位。位。例如:例如: 動(dòng)畫演示動(dòng)畫演示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í)行過(guò)程與基址尋址相同指令書寫格式和尋址執(zhí)行過(guò)程與基址尋址相同, ,區(qū)別僅在于將區(qū)別僅在于將基址寄存器基址寄存器改成改成變址寄存器變址寄存器。3.2 尋址方式尋址方式 (6)變址尋址變址尋址 1616位尋址時(shí),僅位尋址時(shí),僅SISI、DIDI可作變址寄存器,可作變址寄存器,且默認(rèn)且默認(rèn)DSDS作為段基址寄存器。如:作為段基址寄存器。如:MOV AX,COUNTSIMOV
32、 AX,COUNTSI 3232位尋址時(shí)位尋址時(shí), ,除除ESPESP外的任何通用寄存器均外的任何通用寄存器均可作變址寄存器可作變址寄存器, ,且默認(rèn)且默認(rèn)EBPEBP以以SSSS作段基址寄存器作段基址寄存器, ,其余均以其余均以DSDS作段基址寄存器。作段基址寄存器。 如如: :MOV EAX,5EBPMOV EAX,5EBPMOV ECX,DATAEAXMOV ECX,DATAEAX基址、變址尋址適于對(duì)一維數(shù)組的數(shù)組元素進(jìn)行檢基址、變址尋址適于對(duì)一維數(shù)組的數(shù)組元素進(jìn)行檢索操作。位移量表示數(shù)組起始地址偏移量;基址索操作。位移量表示數(shù)組起始地址偏移量;基址/ /變址表示數(shù)組元素的下標(biāo),可變。變
33、址表示數(shù)組元素的下標(biāo),可變。3.2 尋址方式尋址方式 (7)比例變址尋址比例變址尋址在這種方式下:在這種方式下:EA=EA=變址寄存器變址寄存器 比例因子比例因子+ +位移量位移量這種尋址方式只適于這種尋址方式只適于3232位尋址一種情況。例如:位尋址一種情況。例如:MOV EAX,TABLEESIMOV EAX,TABLEESI* *44 ;TABLE;TABLE是位移量是位移量,4,4是比例因子是比例因子比例變址尋址和基址比例變址尋址和基址/ /變址尋址的作用相似變址尋址的作用相似, ,也適用也適用于對(duì)一維數(shù)組元素的檢索。但當(dāng)數(shù)組元素大小為于對(duì)一維數(shù)組元素的檢索。但當(dāng)數(shù)組元素大小為2/4/
34、82/4/8字節(jié)時(shí),用它更方便、更高效。字節(jié)時(shí),用它更方便、更高效。比例變址尋址方式的執(zhí)行過(guò)程的比例變址尋址方式的執(zhí)行過(guò)程的動(dòng)畫演示動(dòng)畫演示。3.2 尋址方式尋址方式 (8)基址加變址尋址基址加變址尋址在這種尋址方式下,在這種尋址方式下,EA=EA=基址寄存器基址寄存器+變址寄存器變址寄存器 例如:例如:MOV AX,BX+SI ;MOV AX,BX+SI ;或?qū)懗苫驅(qū)懗蒑OV AX,BXSIMOV AX,BXSI 動(dòng)畫演示動(dòng)畫演示它有它有1616位尋址和位尋址和3232位尋址兩種情況,每種情況下基址、變位尋址兩種情況,每種情況下基址、變址寄存器的使用規(guī)定和段寄存器的默認(rèn)規(guī)定與前面所述相址寄存
35、器的使用規(guī)定和段寄存器的默認(rèn)規(guī)定與前面所述相同,但一種尋址方式中同,但一種尋址方式中既有基址寄存器又有變址寄存器,既有基址寄存器又有變址寄存器,而兩個(gè)寄存器默認(rèn)的段寄存器又不相同時(shí),一般規(guī)定由而兩個(gè)寄存器默認(rèn)的段寄存器又不相同時(shí),一般規(guī)定由基基址寄存器址寄存器來(lái)決定默認(rèn)哪一個(gè)段寄存器作段基址指針來(lái)決定默認(rèn)哪一個(gè)段寄存器作段基址指針。 基址加變址尋址主要用于二維數(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é)時(shí)字節(jié)時(shí)的二維數(shù)組檢索操作等場(chǎng)合。的二維數(shù)組檢索操作等場(chǎng)合。3.2 尋址方式尋址方式 (10)帶位移的基址加變址尋址帶位移的基址加變址尋址
37、在這種方式下:在這種方式下:EA=EA=變址寄存器變址寄存器+基址寄存器基址寄存器+位移量位移量 這種方式也分這種方式也分1616位尋址和位尋址和3232位尋址兩種情況。變址、位尋址兩種情況。變址、基址寄存器的使用約定和對(duì)段寄存器的默認(rèn)約定與前基址寄存器的使用約定和對(duì)段寄存器的默認(rèn)約定與前面所述相同。格式舉例:面所述相同。格式舉例: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í)行過(guò)程的址方式的執(zhí)行過(guò)程的動(dòng)畫演示動(dòng)畫演示。 這種尋址方式也是主要用于二維數(shù)組操作,位移這種尋址方式也是主要用于二維數(shù)組操作,位移量即為數(shù)組起始地址。量即為數(shù)組起始地址。3.2 尋址方式尋址方式 (11)帶位移的基址加變址比例尋址帶位移的基址加變址比例尋址這種方式將偏移地址四元素都用上了,即:這種方式將偏移地址四元素都用上了,即:EA=EA=變址寄存器變址寄存器 比例因子比例因子+基址寄存器基址寄存器+位移量位移量 它它只有只有32
39、32位尋址位尋址一種情況。各種約定和默認(rèn)情況同一種情況。各種約定和默認(rèn)情況同前所述。前所述。格式舉例:格式舉例:INC EDIINC EDI* *8ECX+40 ;8ECX+40 ;或或INC EDIINC EDI* *8+ECX+408+ECX+40 當(dāng)二維數(shù)組的數(shù)組元素大小為當(dāng)二維數(shù)組的數(shù)組元素大小為2/4/82/4/8字節(jié),且數(shù)組字節(jié),且數(shù)組起始地址不為起始地址不為0 0時(shí),適于用這種尋址方式進(jìn)行數(shù)組檢索時(shí),適于用這種尋址方式進(jìn)行數(shù)組檢索操作。操作。訪存操作類型訪存操作類型 默認(rèn)段寄存器默認(rèn)段寄存器 允許超越的段寄存器允許超越的段寄存器 偏移地址寄存器偏移地址寄存器取指令代碼取指令代碼
40、CS CS 無(wú)無(wú) (E E)IPIP堆棧操作堆棧操作 SS SS 無(wú)無(wú) (E)SP(E)SP目的串?dāng)?shù)據(jù)訪問(wèn)目的串?dāng)?shù)據(jù)訪問(wèn) ES ES 無(wú)無(wú) (E)DI(E)DI通用數(shù)據(jù)訪問(wèn)通用數(shù)據(jù)訪問(wèn) DS CSDS CS、SSSS、ESES、FSFS、GS GS 偏移地址偏移地址以以(E)BP(E)BP、(E)SP(E)SP間接尋址的指令間接尋址的指令 SSSSCSCS、DSDS、ESES、FSFS、GSGS偏移地址偏移地址源串?dāng)?shù)據(jù)訪問(wèn)源串?dāng)?shù)據(jù)訪問(wèn) DS CSDS CS、SSSS、ESES、FSFS、GS (E)SIGS (E)SI3.2 尋址方式尋址方式 3 存儲(chǔ)器尋址時(shí)的段約定存儲(chǔ)器尋址時(shí)的段約定以下的
41、默認(rèn)段選擇不能被超越:以下的默認(rèn)段選擇不能被超越: 必須從代碼段必須從代碼段取指令取指令; 在串操作中的在串操作中的目的串目的串必須存儲(chǔ)在由必須存儲(chǔ)在由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)的基礎(chǔ)系列指令系統(tǒng)的基礎(chǔ)上逐步發(fā)展而形成的,在代碼級(jí)具有向上兼容性。它增上逐步發(fā)展而形成的,在代碼級(jí)具有向上兼容性。它增加了指令的種類,增強(qiáng)了一些指令的功能,
42、提供了加了指令的種類,增強(qiáng)了一些指令的功能,提供了3232位位尋址方式和尋址方式和3232位操作方式,并且包含全部浮點(diǎn)運(yùn)算指令。位操作方式,并且包含全部浮點(diǎn)運(yùn)算指令。 PentiumPentium指令的操作數(shù)可以是指令的操作數(shù)可以是0 03 3個(gè),根據(jù)尋址方個(gè),根據(jù)尋址方式不同,可直接包含在指令中,也可存于寄存器或存儲(chǔ)式不同,可直接包含在指令中,也可存于寄存器或存儲(chǔ)器中。器中。 每條指令的長(zhǎng)度因指令而異,平均指令長(zhǎng)度為每條指令的長(zhǎng)度因指令而異,平均指令長(zhǎng)度為3.23.2字節(jié)。字節(jié)。 指令的操作數(shù)寬度可以是指令的操作數(shù)寬度可以是8 8位、位、1616位、位、3232位,尋址位,尋址寬度可以是寬度
43、可以是1616位或位或3232位。位。3.3 IA-32的指令格式的指令格式1、指令格式:、指令格式:Label(標(biāo)號(hào)標(biāo)號(hào)): mnemonic(助記符助記符) argument1(參數(shù)參數(shù)1) argument2(參數(shù)參數(shù)2)argument3(參數(shù)參數(shù)3)其中:其中:p標(biāo)號(hào)標(biāo)號(hào)(Label):在一標(biāo)識(shí)符后面跟冒號(hào)在一標(biāo)識(shí)符后面跟冒號(hào)(:);p助記符助記符(mnemonic):一類具有相同功能的指令操作碼的一類具有相同功能的指令操作碼的保留名;保留名;p操作數(shù)參數(shù)操作數(shù)參數(shù)(argument):任選,可以有任選,可以有03個(gè),它們可個(gè),它們可能是文字或數(shù)據(jù)項(xiàng)的標(biāo)識(shí)符、操作數(shù)標(biāo)識(shí)符,或者是寄存
44、能是文字或數(shù)據(jù)項(xiàng)的標(biāo)識(shí)符、操作數(shù)標(biāo)識(shí)符,或者是寄存器的保留名,或者是在程序的另一部分中聲明的賦予數(shù)據(jù)器的保留名,或者是在程序的另一部分中聲明的賦予數(shù)據(jù)項(xiàng)的標(biāo)識(shí)符。項(xiàng)的標(biāo)識(shí)符。 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é)寄存器寄存器/ /存儲(chǔ)器尋址存儲(chǔ)器尋址方式說(shuō)明符字段方式說(shuō)明符字段 主尋址字節(jié)主尋址字節(jié), ,規(guī)定操作數(shù)的規(guī)定操作數(shù)
45、的尋址方式,包尋址方式,包括操作數(shù)的存括操作數(shù)的存放位置和存儲(chǔ)放位置和存儲(chǔ)器中操作數(shù)器中操作數(shù)EAEA的計(jì)算方法等的計(jì)算方法等比例比例- - 變變址址- - 基址基址字節(jié),為字節(jié),為第二尋址第二尋址字節(jié)字節(jié)位移量字段位移量字段, ,屬存儲(chǔ)器地屬存儲(chǔ)器地址的一部分。址的一部分。位移量足夠位移量足夠小時(shí),通常小時(shí),通常采用帶符號(hào)采用帶符號(hào)的的8 8位整數(shù),位整數(shù),CPUCPU自動(dòng)將自動(dòng)將它擴(kuò)展到它擴(kuò)展到1616位或位或3232位位立即數(shù)字段立即數(shù)字段8 8位立即數(shù)與位立即數(shù)與16/3216/32位操作位操作數(shù)一起使用時(shí),數(shù)一起使用時(shí),CPUCPU自動(dòng)將其自動(dòng)將其擴(kuò)展至符號(hào)相擴(kuò)展至符號(hào)相同的同的16
46、/3216/32位位數(shù)。同理也可數(shù)。同理也可將將1616位立即數(shù)位立即數(shù)擴(kuò)展至擴(kuò)展至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ī)定指令的操作性質(zhì),操作性質(zhì),包括操作數(shù)包括操作數(shù)類型、操作類型、操作數(shù)傳送方向、數(shù)傳送方向、寄存器編碼寄存器編碼或符號(hào)擴(kuò)展或符號(hào)擴(kuò)展等等用于修改指令用于修改指令操作的某些屬操作的某些屬性性, ,有有5 5類前綴:類前綴:段超越前綴段超越前綴操作數(shù)寬度操作數(shù)寬度 前綴前綴地址寬度前地址寬度前 綴綴重復(fù)前綴重復(fù)
47、前綴總線鎖定前總線鎖定前 綴綴3.3 IA-32的指令格式的指令格式n2. 指令分類指令分類PentiumPentium指令系統(tǒng)分為:指令系統(tǒng)分為:整數(shù)指令整數(shù)指令-最常用部分最常用部分浮點(diǎn)數(shù)指令浮點(diǎn)數(shù)指令操作系統(tǒng)型指令操作系統(tǒng)型指令3.4 通用整數(shù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用PentiumPentium的整數(shù)指令按功能分為:的整數(shù)指令按功能分為:4.4.位操作指令位操作指令5.5.控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令10.10.高級(jí)語(yǔ)言指令高級(jí)語(yǔ)言指令1.1.數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令2.2.算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令6.6.邏輯運(yùn)算與移位指令邏輯運(yùn)算與移位指令3.3.串操作指令串操作指令7.7.標(biāo)志操作指
48、令標(biāo)志操作指令8.8.按條件設(shè)置字節(jié)指令按條件設(shè)置字節(jié)指令9.9.處理器控制指令處理器控制指令1. 1. 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令n數(shù)據(jù)傳送數(shù)據(jù)傳送是計(jì)算機(jī)中最基本、最常用、最重是計(jì)算機(jī)中最基本、最常用、最重要的一類操作。如:要的一類操作。如:n這類指令尋址方式最豐富,除這類指令尋址方式最豐富,除POPFPOPF外,均不外,均不影響標(biāo)志寄存器的標(biāo)志位。影響標(biāo)志寄存器的標(biāo)志位。在實(shí)際程序中,它的使用頻率最高。在實(shí)際程序中,它的使用頻率最高。 各種初始化操作各種初始化操作 取操作數(shù)取操作數(shù) 保存結(jié)果保存結(jié)果3.4 3.4 通用整數(shù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 用于實(shí)現(xiàn)存儲(chǔ)器與寄存寄用于實(shí)現(xiàn)存儲(chǔ)器與
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)、查表轉(zhuǎn)換指令查表轉(zhuǎn)換指令(XLAT)(XLAT)等。等。q 堆棧指令堆棧指令。如。如PUSHPUSH類類/POP/POP類指令等。類指令等。q 數(shù)據(jù)類型變換指令數(shù)據(jù)類型變換指令。如數(shù)據(jù)寬度變換指令,帶符號(hào)數(shù)符。如數(shù)據(jù)寬度變換
50、指令,帶符號(hào)數(shù)符號(hào)位擴(kuò)展號(hào)位擴(kuò)展/ /無(wú)符號(hào)數(shù)位擴(kuò)展指令等。無(wú)符號(hào)數(shù)位擴(kuò)展指令等。q I/OI/O指令指令。如。如ININ類類/OUT/OUT類指令等。類指令等。3.4 3.4 通用整數(shù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 3.4 3.4 通用整數(shù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 立立即即數(shù)數(shù)通用寄存器通用寄存器(EAXEAX、EBXEBX、ECXECX、EDXEDX、 EBPEBP、ESPESP、ESIESI、EDI)EDI)CSCS存存儲(chǔ)儲(chǔ)器器段寄存器段寄存器(SS(SS、DSDS、ESES、FSFS、GS)GS)MOVMOV指令允許的傳送關(guān)系指令允許的傳送關(guān)系 傳送指令傳送指令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ù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 IMMIMM8/16/32位位立即數(shù)立即數(shù)REGREG8/16/32位通位通用寄存器用寄存器MEMMEM8/16/32位位存儲(chǔ)器存儲(chǔ)器SREGSREG段寄存器段寄存器使用說(shuō)明:使用說(shuō)
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í), ,要給目的操作數(shù)加類型說(shuō)明。要給目的操作數(shù)加類型說(shuō)明。n源操作數(shù)和目的操作數(shù)源操作數(shù)和目的操作數(shù)不能同為存儲(chǔ)器操作數(shù)不能同為存儲(chǔ)器操作數(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ù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 MOV DS MOV DS,100100 MOV 1000H MOV 1000H,23H23H錯(cuò)。錯(cuò)。源、目的操作數(shù)不能同為存儲(chǔ)器尋址。源、目的操作數(shù)不能同為存儲(chǔ)器尋址。 MOV 1000H MOV 1000H,2000H2000H錯(cuò)。立即數(shù)不能直接賦給段寄存器。錯(cuò)。立即數(shù)不能直接賦給段寄存器。錯(cuò)。目的操作數(shù)長(zhǎng)度不確定。錯(cuò)
54、。目的操作數(shù)長(zhǎng)度不確定。 MOV DATA MOV DATA,1133H1133H MOV CS MOV CS,AX AX 依賴于依賴于DATADATA的定義的定義錯(cuò)。不能用傳送指令改變代碼段寄存器。錯(cuò)。不能用傳送指令改變代碼段寄存器。 MOV AX MOV AX,0100H+BX+BP0100H+BX+BP錯(cuò)。地址寄存器不能同為基址寄存器。錯(cuò)。地址寄存器不能同為基址寄存器。 例例2.32.3 識(shí)別下列指令的正確性,對(duì)錯(cuò)誤的指令,識(shí)別下列指令的正確性,對(duì)錯(cuò)誤的指令,說(shuō)明錯(cuò)誤的原因。說(shuō)明錯(cuò)誤的原因。3.4 3.4 通用整數(shù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 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說(shuō)明:說(shuō)明: 基本用法同基本用法同MOVMOV指令指令; ; 當(dāng)源或目的操作數(shù)為當(dāng)源或目的操作數(shù)為MEMMEM操作數(shù)時(shí),會(huì)自動(dòng)操作數(shù)時(shí),會(huì)自動(dòng) 激活
56、激活LOCKLOCK信號(hào)信號(hào), ,該特性常用于多機(jī)、多任務(wù)該特性常用于多機(jī)、多任務(wù) 或多用戶系統(tǒng)中的臨界段或多用戶系統(tǒng)中的臨界段( (共享資源共享資源) )訪問(wèn)。訪問(wèn)。3.4 3.4 通用整數(shù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 是是80486/Pentium CPU 80486/Pentium CPU 中中一條支持多機(jī)操作的指令一條支持多機(jī)操作的指令 例例2.42.4 臨界段訪問(wèn)(測(cè)試與置操作)臨界段訪問(wèn)(測(cè)試與置操作)3.4 3.4 通用整數(shù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 TESTTEST:MOV ALMOV AL,0FFH0FFH XCHG ALXCHG AL,SEMAPHORE ;SEMAPHO
57、RE ;讀信號(hào)燈并置讀信號(hào)燈并置 AND ALAND AL,AL AL ;產(chǎn)生條件碼;產(chǎn)生條件碼 JNZ TEST JNZ TEST ;忙時(shí)等待;忙時(shí)等待 ( (臨界段程序臨界段程序) ) MOV AL MOV AL,0 0 MOV SEMAPHOREMOV SEMAPHORE,AL AL ;清信號(hào)燈;清信號(hào)燈 I/O指令指令 說(shuō)明:說(shuō)明: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ù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 輸出指令輸出指令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ù)指令及應(yīng)用通用整數(shù)指令及應(yīng)用 n說(shuō)明說(shuō)明: : XLATXLAT是一條是一條隱含尋址隱含尋址的指令。隱的指令。隱含兩個(gè)操作數(shù):含兩個(gè)操作數(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ù)指令及應(yīng)
60、用通用整數(shù)指令及應(yīng)用 例例2.52.5 內(nèi)存中自內(nèi)存中自TABLETABLE開始的開始的1616個(gè)單元連續(xù)存?zhèn)€單元連續(xù)存放著自然數(shù)放著自然數(shù)0 0到到1515的平方值的平方值( (構(gòu)成一個(gè)平方表構(gòu)成一個(gè)平方表) ),任給一整數(shù)任給一整數(shù)M M在在XXXX單元中單元中( (該數(shù)為該數(shù)為0M15)0M15),查,查表求表求M M的平方值,并將結(jié)果存入的平方值,并將結(jié)果存入YYYY單元中。單元中。解解: :LEA BXLEA BX,TABLETABLEMOVMOV AL AL,XXXX XLATXLAT MOVMOV YY YY,ALALTABLE 0+1 1+2 4+3 9+15 225XX 53
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能充電樁施工安裝服務(wù)合同范本4篇
- 2025年中國(guó)紗庫(kù)支架行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2024版研究生實(shí)習(xí)合同模板2篇
- 2025年度公共安全設(shè)施招標(biāo)文件編制及安全性能評(píng)估服務(wù)合同3篇
- 狗仔扣鑰匙鏈行業(yè)行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究分析報(bào)告
- 2025年水資源利用項(xiàng)目投產(chǎn)資金借貸合同3篇
- 2025年度個(gè)人健康數(shù)據(jù)共享合同范本3篇
- 2025年度個(gè)人農(nóng)業(yè)貸款抵押合同示范文本4篇
- 2025年挖掘機(jī)采購(gòu)與專業(yè)人才引進(jìn)合同3篇
- 2025年度個(gè)人入股分紅合作開發(fā)項(xiàng)目合同4篇
- 機(jī)械點(diǎn)檢員職業(yè)技能知識(shí)考試題庫(kù)與答案(900題)
- 成熙高級(jí)英語(yǔ)聽(tīng)力腳本
- 北京語(yǔ)言大學(xué)保衛(wèi)處管理崗位工作人員招考聘用【共500題附答案解析】模擬試卷
- 肺癌的診治指南課件
- 人教版七年級(jí)下冊(cè)數(shù)學(xué)全冊(cè)完整版課件
- 商場(chǎng)裝修改造施工組織設(shè)計(jì)
- (中職)Dreamweaver-CC網(wǎng)頁(yè)設(shè)計(jì)與制作(3版)電子課件(完整版)
- 統(tǒng)編版一年級(jí)語(yǔ)文上冊(cè) 第5單元教材解讀 PPT
- 中班科學(xué)《會(huì)說(shuō)話的顏色》活動(dòng)設(shè)計(jì)
- 加減乘除混合運(yùn)算600題直接打印
- ASCO7000系列GROUP5控制盤使用手冊(cè)
評(píng)論
0/150
提交評(píng)論