版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3.180X86/Pentium指令格式
3.280X86/Pentium尋址方式
3.38086/8088CPU指令系統(tǒng)
3.480X86/PentiumCPU指令系統(tǒng)
3.580X87浮點(diǎn)運(yùn)算指令
第3章80X86/Pentium指令系統(tǒng)
第3章80X86/Pentium指令系統(tǒng)
指令系統(tǒng):微機(jī)處理器所能執(zhí)行的各種指令的集合,它定義了計(jì)算機(jī)硬件所能完成的基本操作。本章重點(diǎn):基本指令集對(duì)80X86/Pentium系列CPU:
8086/8088的16位指令系統(tǒng)是基本指令集。
80286-Pentium的指令系統(tǒng)對(duì)基本指令集進(jìn)行了增強(qiáng)與擴(kuò)充:①
32位整數(shù)指令集
②多媒體MMX指令集
③數(shù)據(jù)流SIMD擴(kuò)展SSE指令集
④保護(hù)模式編程的系統(tǒng)控制類(lèi)指令等不同的微處理器有不同的指令系統(tǒng)
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)3.180x86/Pentium指令格式匯編語(yǔ)言指令的特點(diǎn)----機(jī)器指令:指令的二進(jìn)制代碼形式。如:89D8H匯編指令:助記符形式的指令。
如:MOVAX,BX操作數(shù)OPCode動(dòng)作:做什么?對(duì)象:針對(duì)什么做動(dòng)作?立即操作數(shù)MOVAL,50H
Reg操作數(shù)INCAL存貯器操作數(shù)MOVAL,[2000H]
I/O操作數(shù):INAL,28H操作碼/助記符:與動(dòng)作一一對(duì)應(yīng)目/源操作數(shù):可能有多種組合第3章80x86/Pentium指令系統(tǒng)操作碼:由CPU設(shè)計(jì)人員定義。每一種操作唯一對(duì)應(yīng)一個(gè)操作碼。
例:加法操作助記符ADD;數(shù)據(jù)傳送操作助記符MOV;比較操作助記符CMP;操作數(shù):可由編程人員采用不同方式給出。指令格式:指令中對(duì)操作碼、操作數(shù)的編碼方式。對(duì)x86,由1~16個(gè)字節(jié)構(gòu)成。datadisps-i-bmodr/m操作碼前綴1~4 1~2 1 1 0.1.2.40.1.2.48086/8088指令格式:1~6個(gè)字節(jié)data(高)data(低)disp/data(高)disp/data(低)modr/mOPCode第3章80x86/Pentium指令系統(tǒng)有效地址EA:從段的首地址到操作數(shù)所在地址的距離,用字節(jié) 數(shù)表示,是一個(gè)無(wú)符號(hào)16位整數(shù),它指向段首地 址開(kāi)始的64KB。操作碼與尋址方式字節(jié):01234567WDOPCode mod reg r/m在指令中的操作數(shù)以8086/8088指令格式為例:
1~6個(gè)字節(jié)data(高)data(低)disp/data(高)disp/data(低)modr/mOPCode操作碼尋址方式依據(jù)指令的不同而取舍規(guī)定指令的操作類(lèi)型指出存貯器操作數(shù)地址的位移量或立即數(shù)兩個(gè)操作數(shù)存放地址及EA計(jì)算方法第3章80x86/Pentium指令系統(tǒng)第二字節(jié):
reg.—編碼(23=8)表示一個(gè)具體的reg.操作數(shù),字節(jié)或字已由W決定,目的或源由D決定。
mod—編碼表示另一個(gè)操作數(shù)是在reg.中還是在存貯器中。
11編碼為reg.,其他編碼為存貯器。
當(dāng)mod=11時(shí),r/m指出第二個(gè)reg.操作數(shù)的編碼。 當(dāng)mod≠11時(shí),r/m指出存貯器操作數(shù)存放地址的計(jì)算方法。01234567WDOPCode mod reg r/m第一字節(jié):
操作碼(OpCode)—操作類(lèi)型
W(字操作標(biāo)志位)—操作數(shù)類(lèi)型=D(reg.尋址標(biāo)志位)—reg.操作數(shù)傳送方向=
0字節(jié)1字0reg.操作數(shù)為源操作數(shù)1reg.操作數(shù)為目的操作數(shù)
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)說(shuō)明:若指令中兩個(gè)操作數(shù)都是reg,則D=1。當(dāng):D=1,reg.為目的操作數(shù),由modr/m決定源。
D=0,reg.為源操作數(shù),由modr/m決定目的。1100111100000010
例1: ADD CL,BH;兩個(gè)reg相加機(jī)器語(yǔ)言:0000001 0|11001111OPCode
Dreg.為目的操作數(shù)
W
字節(jié)運(yùn)算modreg.尋址方式reg.CLr/mBH第一個(gè)操作數(shù)為目的reg第二個(gè)操作數(shù)為reg.操作數(shù)機(jī)器碼存放在內(nèi)存中
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)例2: ADD DISP[BX][DI],DX;reg與存儲(chǔ)器相加機(jī)器語(yǔ)言:000000 0110010001OPCodereg.為源操作數(shù)字操作數(shù)第二個(gè)是存貯器操作數(shù)reg.DXEA=BX+DI+D16disp設(shè)DISP=2345H,則有001000110100010100100011010001011001000100000001低disp(8)高disp(8)指令代碼:第3章80x86/Pentium指令系統(tǒng)
說(shuō)明:①匯編語(yǔ)言指令可手工匯編成機(jī)器碼.②即使是同一種指令,不同的尋址方式,其機(jī)器指令碼長(zhǎng)度會(huì)有所不同。編程時(shí)應(yīng)選擇合理算法、數(shù)據(jù)結(jié)構(gòu)、尋址方式等節(jié)省MEM。
③該指令的正確形式:ADDWORDPTRDISP[BX][DI],-105D例3:
ADD DISP[BX][DI],-105D8381452397此FFH僅在運(yùn)算時(shí)用,不作為指令碼存在代碼段-105D 11101001原碼
10010111補(bǔ)碼OPCode機(jī)器碼為:10000011W字
10000001D低位數(shù)據(jù)符號(hào)擴(kuò)展
01000101
45H00100011
23H10010111
(-105D)的補(bǔ)碼,低8位
11111111
低位立即數(shù)符號(hào)的擴(kuò)展
disp
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)回顧80X86/Pentium指令格式:
(1)OPCode——規(guī)定指令的操作類(lèi)型,同時(shí)還指出:
①操作數(shù)類(lèi)型②reg.操作數(shù)傳送方向 ③reg.編碼④符號(hào)擴(kuò)展
(2)modr/m和s-i-b尋址字段:規(guī)定reg./mem操作數(shù)的尋址方式
其中,modr/m是主尋址字節(jié),規(guī)定:
操作數(shù)存放的位置r/m及存貯器操作數(shù)有效地址EA的計(jì)算方法。
s-i-b是比例-變址-基址尋址字節(jié):
此字節(jié)可有可無(wú),按主尋址字節(jié)編碼而定。(3)disp位移量字段:存貯器操作數(shù)有效地址EA的一部分,為:
0、1、2、4個(gè)字節(jié)。(4)data立即數(shù)字段:指明立即數(shù)的大小,0、1、2、4個(gè)字節(jié)。
當(dāng)8位與16/32位操作數(shù)一起使用時(shí),
CPU自動(dòng)將它擴(kuò)展為符號(hào)相同的16/32位數(shù).第3章80x86/Pentium指令系統(tǒng)(5)前綴字段——用于修改指令操作的某些屬性
◆段超越前綴:將前綴中指明的段reg.取代指令中默認(rèn)的段reg.
◆重復(fù)前綴:串操作時(shí)置于指令前面,提高CPU處理串?dāng)?shù)據(jù)的速度
◆總線(xiàn)鎖定前綴Lock:用于產(chǎn)生Lock信號(hào),防止其他主控設(shè)備 中斷CPU在總線(xiàn)上的傳輸操作。
◆操作數(shù)寬度前綴:改變當(dāng)前操作數(shù)寬度的默認(rèn)值(由匯編程序自動(dòng)設(shè)定)
◆地址寬度前綴:改變當(dāng)前地址寬度的默認(rèn)值(由匯編程序自動(dòng)設(shè)定)所有字段只有操作碼字段是必需的,其他字段均可有可無(wú)。
前綴的編碼為1個(gè)字節(jié),在一條指令前可同時(shí)使用多個(gè)指令前綴,不同前綴的前后順序無(wú)關(guān)緊要。
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)3.280x86/Pentium尋址方式3.2.1尋址方式與有效地址EA的概念尋址方式:操作數(shù)的存放形式與如何尋找操作數(shù)。依據(jù)尋址方式,可方便地訪(fǎng)問(wèn)到各類(lèi)操作數(shù)。
操作數(shù)存放位置:
(1)操作數(shù)在指令中,與代碼存放在一起,稱(chēng)為立即操作數(shù)
——立即尋址(2)操作數(shù)在Reg.中,指令中操作數(shù)部分是對(duì)應(yīng)Reg.的編碼
——Reg.尋址(3)操作數(shù)在mem中,指令中操作數(shù)部分是操作數(shù)的存儲(chǔ)地址
——存儲(chǔ)器尋址
存儲(chǔ)器尋址時(shí),指令中操作數(shù)部分給出的地址是段內(nèi)偏移地址。
為了處理各種數(shù)據(jù)結(jié)構(gòu)的需要,這個(gè)段內(nèi)偏移量可以由幾個(gè)基本部分組成,故稱(chēng)其為有效地址EA(區(qū)別于指令機(jī)器代碼中計(jì)算物理地址時(shí)的位移量)。
南京航空航天大學(xué)電子信息工程學(xué)院在80X86/Pentium中,任何內(nèi)存單元的物理地址都由兩部分組成:
段基地址和段內(nèi)偏移地址(段內(nèi)偏移量)存貯器尋址時(shí),指令中給出的是段內(nèi)偏移地址對(duì)實(shí)地址方式——DS是段基地址的高16位,稱(chēng)為段地址;
TABLE
為段內(nèi)偏移量,16位。 物理地址PA=DS×16+TABLE 對(duì)保護(hù)方式——DS中是指向段描述符的16位段選擇符,
通過(guò)它可得到32位段基地址;
TABLE為32位。線(xiàn)性地址=段基地址+TABLE換算成32位PA
如:
DS:TABLE第3章80x86/Pentium指令系統(tǒng)
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)有效地址EA有4個(gè)分量組成:EA=(基址寄存器)+(變址寄存器×比例因子)+位移量4個(gè)分量的取值規(guī)定,對(duì)于16位尋址和32位尋址有所不同。
表3-116位和32位尋址時(shí)4種分量的使用規(guī)則有效地址分量16位尋址32位尋址基址寄存器BX,BP任何32位通用寄存器(EAX/EBX/ECX/EDX/ESI/EDI/EBP/ESP)變址寄存器SI,DI除ESP外的任何32位通用寄存器(EAX/EBX/ECX/EDX/ESI/EDI/EBP)比例因子11,2,4,8位移量0,8,16(位)0,8,32(位)1.立即尋址
操作數(shù)包含在指令中,緊跟著操作碼并與操作碼一起存放在代碼段中,與代碼一起被取入CPU的指令隊(duì)列,在指令執(zhí)行時(shí)不需要再訪(fǎng)問(wèn)存貯器。
例:
MOVAL,80H MOVAX,1234H MOVEDX,12345678H
①立即操作數(shù)可以是8、16、32位。若是16或32位,則存放時(shí)必須滿(mǎn)足低對(duì)低,高對(duì)高的原則。②指令中的立即數(shù)只能是源操作數(shù),不能是目的操作數(shù)。③常用于給Reg.賦初值。1234立即尋址方式示意圖3.2.2各種尋址方式(共11種。8086/8088/80286(16位尋址)只有8種,
80386/486/Pentium系列CPU(32位尋址)11種)第3章80x86/Pentium指令系統(tǒng)2.寄存器尋址
操作數(shù)存放在指令規(guī)定的8、16或32位Reg中,Reg名字出現(xiàn)在指令中。
例:INCCL;CL←CL+1MOVAX,BX;DS←AX
MOVECX,EAX;ECX←EAX指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)為源的內(nèi)容。①Reg是任何CPU中的通用RegAX,BX,CX…BP…AH,AL…等②操作數(shù)在Reg中,無(wú)需訪(fǎng)問(wèn)總線(xiàn),執(zhí)行速度快。③若選用AX,執(zhí)行指令時(shí)間更短。3.存儲(chǔ)器尋址
操作數(shù)在存貯區(qū)中,操作數(shù)的有效地址EA在指令中,
段地址在默認(rèn)的或段超越前綴指定的段寄存器中。
操作數(shù)的物理地址PA=DS(或SS、ES…)×16+EA第3章80x86/Pentium指令系統(tǒng)第3章80x86/Pentium指令系統(tǒng)(1)直接尋址
EA=指令中給出的位移量數(shù)據(jù)
有效地址EA直接在指令中給出,它存放在代碼段操作碼之后。操作數(shù)一般在數(shù)據(jù)段DS中(這是一種默認(rèn)方式)。例:MOVAL,[2000H]
;將DS段中2000H單元的內(nèi)容送AL
設(shè)DS=4000H,則物理地址為:
4000H×16+2000H=42000H
①允許段超越例:MOVAX,ES:[2000H]
(或ES:MOVAX,[2000H])AXES:2000H2001H將ES段中2000H、2001H單元內(nèi)容分別送AL、AH(低對(duì)低,高對(duì)高)
不管數(shù)據(jù)在哪個(gè)段內(nèi)存放,只要不是DS,一定要加段超越前綴。第3章80x86/Pentium指令系統(tǒng)②直接尋址中EA可以以變量名的形式給出。例:VALUEDB12H MOVAL,[VALUE];將變量VALUE所指的字節(jié)
;單元內(nèi)容12H存入AL
或MOVAL,VALUE;VALUE又稱(chēng)為符號(hào)地址(2)Reg間接尋址EA=(Reg)操作數(shù)的有效地址EA在指令指定的Reg中Reg使用規(guī)定如下:①
16位尋址時(shí),EA在DI、SI、BP、BX中,這時(shí):若以DI、SI、BX間接尋址,則默認(rèn)操作數(shù)在數(shù)據(jù)段中。
操作數(shù)物理地址=DS×16+BX→(或SI、DI)若以BP間接尋址,則默認(rèn)操作數(shù)在堆棧段內(nèi).
操作數(shù)物理地址=SS×16+BP
若操作數(shù)不在以上默認(rèn)段,則必須在指令中加上段超越前綴。例:MOVAX,[SI];將DS段[SI][SI+1]的內(nèi)容送AL,AHMOVBH,[BP];將SS段[BP]的內(nèi)容送BHMOVCX,ES:[BX];將ES段[BX][BX+1]內(nèi)容送CL,CH第3章80x86/Pentium指令系統(tǒng)②32位尋址時(shí),8個(gè)32位通用Reg均可作Reg間接尋址。例:MOVCH,[EAX]MOVDX,[EBX]MOVCH,[EBP]MOVDX,[ESP]
除EBP、ESP默認(rèn)SS為段Reg外,其余Reg默認(rèn)DS。這些默認(rèn)都允許段超越。例:MOVAX,[BX]
設(shè)DS=4000H,
BX=0100H,寄存器間接尋址示意圖如右。
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)(3)基址尋址
EA=(基址Reg)+位移量操作數(shù)的有效地址EA為指令中給出的基址Reg與位移量之和;
位移量與代碼一起存放在代碼段中。
Reg使用規(guī)定如下:
①16位尋址時(shí),BX、BP作為基址Reg,位移量是8或16位。
BX默認(rèn)數(shù)據(jù)在DS段,BP默認(rèn)數(shù)據(jù)在SS段,可段超越。EA= + 位移量BXBP8位16位物理地址=DS×16+BX+8位或16位位移量SS×16+BP+8位或16位位移量例:MOVAX,[BX+24] 或 MOV AX,24[BX]MOVAX,COUNT[BP]或 MOV AX,[BP+COUNT]8位或16位位移量,符號(hào)常量或變量②32位尋址時(shí),8個(gè)32位通用Reg均可作為基址Reg。例:MOVDX,TABLE[EAX]MOVECX,50[EBP]除EBP、ESP默認(rèn)SS為段Reg外,其余Reg默認(rèn)DS。這些默認(rèn)都允許段超越。位移量可以是8、32位的?;穼ぶ肥疽鈭DMOVAL,[BX+05]第3章80x86/Pentium指令系統(tǒng)
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)(4)變址尋址
EA=(變址Reg)+位移量
書(shū)寫(xiě)格式、尋址過(guò)程皆同基址尋址①16位尋址時(shí),SI和DI作為變址Reg,默認(rèn)DS作為段Reg。
SI DI
例:MOVAX,COUNT[SI]EA= +8位或16位位移量②32位尋址時(shí),除ESP外的7個(gè)32位通用Reg均可作變址Reg,
EBP以SS為默認(rèn)段Reg,余以DS為默認(rèn)段Reg。例:MOVEAX,5[EBP]MOVECX,DATA[EAX](5)比例變址尋址 EA=(變址Reg)×比例因子+位移量例:MOVEAX,TABLE[ESI×4]CPU硬件完成(只適用于32位尋址情況)第3章80x86/Pentium指令系統(tǒng)(6)基址加變址尋址
EA=(基址Reg)+(變址Reg)
①16位尋址時(shí)
BXSI BPDIEA=
+
②32位尋址時(shí)基址與變址Reg的使用規(guī)定同前述(5)(4)(3)。注:當(dāng)一種尋址方式中,基址、變址Reg的默認(rèn)段Reg不同時(shí),一般由基址Reg來(lái)決定默認(rèn)段Reg,并允許段超越。例:MOVAX,[BX+SI]
(或MOVAX,[BX][SI])
;默認(rèn)DS為段RegMOVEAX,[EDX][EBP]
;默認(rèn)SS為段Reg基址加變址尋址示意圖第3章80x86/Pentium指令系統(tǒng)(7)基址加比例變址尋址
EA=(基址Reg)+(變址Reg)×比例因子
例:MOVECX,[EDX×4][EAX]
;或
MOVECX,[EDX×4+EAX]MOVAX,[EBX×8][ESI]
;或
MOVAX,[EBX×8+ESI](只適用于32位尋址)(8)帶位移量的基址加變址尋址(又稱(chēng)為相對(duì)基址變址尋址)
EA=(基址Reg)+(變址Reg)+位移量例:MOVAX,MASK[BX][DI]
或MOVAX,[BX+SI+MASK]PA=DS×16+BX+SI+MASK
有16位和32位尋址兩種。每種情況下,基址與變址
Reg的使用規(guī)定同前述,對(duì)段Reg的默認(rèn)同前。相對(duì)基址變址尋址示意圖41444H第3章80x86/Pentium指令系統(tǒng)(9)帶位移量的基址加比例變址尋址
EA=(基址Reg)+(變址Reg)×比例因子+位移量各種規(guī)定與默認(rèn)同前。(只適用于32位尋址情況)例:MOVAX,[EDI×8+ECX+40]
或MOVAX,[EDI×8][ECX+40]3.2.3存貯器尋址時(shí)的段約定存貯器尋址時(shí),一般不在指令中給出段Reg,而是遵尋基本的默認(rèn)約定訪(fǎng)問(wèn)存儲(chǔ)器類(lèi)型默認(rèn)段寄存器允許超越的段寄存器偏移地址寄存器取指令CS無(wú)(E)IP堆棧操作SS無(wú)(E)SP源串?dāng)?shù)據(jù)訪(fǎng)問(wèn)DSCS、ES、SS(、FS、GS)(E)SI目的串?dāng)?shù)據(jù)訪(fǎng)問(wèn)ES無(wú)(E)DI通用數(shù)據(jù)訪(fǎng)問(wèn)DSCS、ES、SS(、FS、GS)偏移地址EA以(E)BP、(E)SP間接尋址的指令SSCS、DS、ES(、FS、GS)偏移地址EA
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)3.38086/8088CPU指令系統(tǒng)
8086/8088指令系統(tǒng)是80x86/PentiumCPU的基本指令集。指令的操作數(shù)寬度是8位或16位,偏移地址寬度是16位。操作數(shù)符號(hào)簡(jiǎn)單說(shuō)明3.3.1數(shù)據(jù)傳送類(lèi)指令(最基本、最重要的一類(lèi)操作)(1)存儲(chǔ)器與寄存器(2)寄存器與寄存器(3)累加器與I/O端口(4)立即數(shù)到Reg或存儲(chǔ)器之間的數(shù)據(jù)傳送??蓪?shí)現(xiàn)數(shù)據(jù)傳送類(lèi)、算術(shù)運(yùn)算類(lèi)、邏輯運(yùn)算與移位類(lèi)、串操作類(lèi)、控制轉(zhuǎn)移類(lèi)、處理器控制類(lèi)。共分為6類(lèi)①指令功能、助記符、操作數(shù)的正確選擇②指令執(zhí)行后對(duì)標(biāo)志位的影響。要求掌握第3章80x86/Pentium指令系統(tǒng)表3-3指令操作數(shù)符號(hào)說(shuō)明符號(hào)意義OPRD,OPRDN操作數(shù);第N個(gè)操作數(shù),如OPRD1,OPRD2,OPRD3等DEST,SRC目的操作數(shù),源操作數(shù)reg通用寄存器,長(zhǎng)度可以是8位或16位reg88位通用寄存器AH/AL/BH/BL/CH/CL/DH/DLreg1616位通用寄存器AX/BX/CX/DX/SI/DI/BP/SPSreg段寄存器DS/CS/SS/ES(/FS/GS)mem存儲(chǔ)器操作數(shù),長(zhǎng)度可以是8位或16位mem88位存儲(chǔ)器操作數(shù)mem1616位存儲(chǔ)器操作數(shù)imm立即數(shù),長(zhǎng)度可以是8位或16位imm88位立即數(shù)imm1616位立即數(shù)類(lèi)別指令功能指令書(shū)寫(xiě)格式(助記符)通用數(shù)據(jù)傳送字節(jié)或字傳送MOV目標(biāo),源字壓入堆棧PUSH
源字彈出堆棧POP目標(biāo)字節(jié)或字交換XCHG目標(biāo),源字節(jié)翻譯XLAT地址傳送裝入有效地址LEA目標(biāo),源裝入邏輯地址LDS目標(biāo),源裝入邏輯地址LES目標(biāo),源標(biāo)志位傳送將標(biāo)志寄存器FR低字節(jié)裝入AHLAHF將AH內(nèi)容裝入FR低字節(jié)SAHF將FR內(nèi)容壓入堆棧PUSHF從堆棧彈出FR內(nèi)容POPFI/O數(shù)據(jù)傳送輸入字節(jié)或字IN累加器,端口輸出字節(jié)或字OUT端口,累加器表3-4數(shù)據(jù)傳送類(lèi)指令(14條分為4組)除SAHF和POPF外,其余指令執(zhí)行后對(duì)標(biāo)志位都沒(méi)有影響。第3章80x86/Pentium指令系統(tǒng)(1)MOV指令
指令格式:MOVOPRD1,OPRD2;助記符匯編語(yǔ)言格式OPRD21←OPRD2兩者可以是字節(jié)或字,但必須等長(zhǎng)。MOV指令有如下一些形式:MOV reg/Sreg/mem,regMOV reg/mem,SregMOV reg/Sreg,memMOV reg/mem,imm通用寄存器(AX,BX,CX,DX,BPSP,SI,DI)存儲(chǔ)器立即數(shù)段寄存器(CS,SS,DS,ES)傳送關(guān)系示意圖1.通用數(shù)據(jù)傳送指令
共5條,它們(除XCHG外)是唯一允許以Sreg作為操作數(shù)的指令。
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)例:
MOVAL,CH;通用Reg之間傳送字節(jié)數(shù)據(jù)
MOVDS,AX;通用Reg→段Reg(CS不能是目標(biāo))MOVAX,0FF3BH
;立即數(shù)→通用RegMOVCX,[1000H];存儲(chǔ)器→通用RegMOVAL,BUFFER
;存儲(chǔ)器→通用Reg(BUFFER為字節(jié)存儲(chǔ)單元)MOVDAT[BP+DI],ES;段Reg→存儲(chǔ)器
MOVBUFFER
,25H;立即數(shù)→存儲(chǔ)器(BUFFER為字存儲(chǔ)單元)使用MOV指令傳送數(shù)據(jù)時(shí)應(yīng)該注意:
①立即數(shù)和段寄存器CS不能作為目標(biāo)操作數(shù);②立即數(shù)不能直接傳送到段寄存器;(MOVDS,1000H)③兩個(gè)存儲(chǔ)單元之間不能直接傳送數(shù)據(jù)(可通過(guò)Reg做中介);④兩個(gè)段寄存器之間不能直接傳送數(shù)據(jù)(MOVDS,ES)
;⑤
將立即數(shù)傳送到存儲(chǔ)單元時(shí),必須顯式說(shuō)明存儲(chǔ)器操作數(shù)的寬度類(lèi)型。
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)(2)堆棧操作指令PUSH/POP
堆棧是按照LIFO原則組織的一段內(nèi)存區(qū)域。
80x86規(guī)定堆棧設(shè)置在堆棧段(SS)內(nèi),向下生長(zhǎng),SP始終指向堆棧的頂部。斷點(diǎn)地址的保存由子程序調(diào)用指令或中斷響應(yīng)來(lái)完成(機(jī)器做);現(xiàn)場(chǎng)數(shù)據(jù)保存可通過(guò)堆棧操作指令來(lái)實(shí)現(xiàn)。
指令格式:PUSHOPRD2POPOPRD1堆棧操作時(shí),一定是16位操作。源操作數(shù):通用Reg,Sreg,mem目標(biāo)操作數(shù):通用Reg,Sreg(CS除外),mem堆棧用于在子程序調(diào)用或處理中斷時(shí),保存斷點(diǎn)地址(8086/8088中為CS和IP)和現(xiàn)場(chǎng)數(shù)據(jù),以便子程序執(zhí)行完畢后正確返回主程序.堆棧示意圖SSSP……第3章80x86/Pentium指令系統(tǒng)指令格式:PUSHOPRD2
;SP←SP-2
;((SP+1),(SP))←OPRD2
POPOPRD1
;OPRD1←[SP]
;SP←SP+2具體的入/出棧指令形式:
PUSHreg16;POPreg16PUSH Sreg;POPSregPUSH mem16;POPmem16注意:①程序中有一個(gè)PUSH,必有一個(gè)對(duì)應(yīng)的POP;②遵循后進(jìn)先出原則;
③按字進(jìn)行操作;(PUSHAH;POPBL)④
PUSHCS;POPCS√XX入、出棧指令的執(zhí)行情況第3章80x86/Pentium指令系統(tǒng)(3)交換指令XCHG指令格式:XCHGOPRD1,OPRD2
;OPRD1←→OPRD2OPRD1、OPRD2可以是等長(zhǎng)的reg,mem例:XCHGAX,BXXCHG[2530H],CX具體指令如下:
XCHGreg/mem,regXCHGreg,mem注意:
①段Reg和立即數(shù)不能作為操作數(shù);②兩個(gè)存儲(chǔ)器操作數(shù)之間不能直接交換。(4)查表轉(zhuǎn)換指令XLAT(換碼指令)指令格式:XLAT
;AL←[BX+AL],完成1字節(jié)的查表轉(zhuǎn)換
或XLATOPRD將數(shù)據(jù)段中偏移地址為(BX+AL)的存儲(chǔ)單元的內(nèi)容送入AL中。此指令常用來(lái)將一種代碼轉(zhuǎn)換為另一種代碼(換碼指令)。
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)使用方法:指令執(zhí)行前,將待轉(zhuǎn)換的代碼組成表格,首地址→BX,
AL存放查找對(duì)象在表中下標(biāo),指令執(zhí)行后,[BX+AL]→AL,BX內(nèi)容不變。注:①代碼表須建立在數(shù)據(jù)段,長(zhǎng)度不超過(guò)256字節(jié)
②執(zhí)行指令前,BX←表首址
AL←查找對(duì)象在表中的偏移量(下標(biāo))③指令的操作數(shù)是隱含的,也可用表的首地址名稱(chēng)(S_TAB)來(lái)表示:MOVBX,OFFSETS_TABMOVAL,4XLAT
S_TAB
例:將數(shù)字0~9的BCD碼轉(zhuǎn)換為7段LED顯示器的顯示代碼。MOV BX,0800HMOV AL,4XLAT ;AL=19H數(shù)字0~9的BCD碼對(duì)應(yīng)的7段LED顯示代碼為:40H,79H,24H,30H,19H,12H,02H,78H,00H,18H。存放在數(shù)據(jù)段,實(shí)現(xiàn)BCD碼0100B轉(zhuǎn)換的程序段:…0800H18H19H30H24H79H40H類(lèi)別指令功能指令書(shū)寫(xiě)格式(助記符)通用數(shù)據(jù)傳送字節(jié)或字傳送MOV目標(biāo),源字壓入堆棧PUSH
源字彈出堆棧POP目標(biāo)字節(jié)或字交換XCHG目標(biāo),源字節(jié)翻譯XLAT地址傳送裝入有效地址LEA目標(biāo),源裝入邏輯地址LDS目標(biāo),源裝入邏輯地址LES目標(biāo),源標(biāo)志位傳送將標(biāo)志寄存器FR低字節(jié)裝入AHLAHF將AH內(nèi)容裝入FR低字節(jié)SAHF將FR內(nèi)容壓入堆棧PUSHF從堆棧彈出FR內(nèi)容POPFI/O數(shù)據(jù)傳送輸入字節(jié)或字IN累加器,端口輸出字節(jié)或字OUT端口,累加器表3-4數(shù)據(jù)傳送類(lèi)指令(分4組)除SAHF和POPF外,其余指令執(zhí)行后對(duì)標(biāo)志位都沒(méi)有影響。第3章80x86/Pentium指令系統(tǒng)2.地址傳送指令(指令中的源操作數(shù)都必須是mem操作數(shù))
取mem操作數(shù)在當(dāng)前段內(nèi)的有效地址EA送至16位通用Reg(1)有效地址傳送指令LEA
指令格式:LEAOPRD1,OPRD2例:LEAAX,[2728H];AX=2728HLEABX,[BP+SI];BX=BP+SI的值。
LEASP,[0482H];SP=0482H
注:MOV指令與LEA的不同——MOV傳送操作數(shù)的內(nèi)容,LEA傳送操作數(shù)的存儲(chǔ)地址.例:MOVDI,TABLE;DI←[TABLE]LEADI,TABLE;DI←TABLE所在單元的EA通常有MOVBX,OFFSETVARWORDLEABX,VARWORD兩者效果一致16位通用Regmem操作數(shù)第3章80x86/Pentium指令系統(tǒng)例:比較
LEABX,BUFFER兩指令的不同
MOVBX,BUFFER存儲(chǔ)單元內(nèi)容如右圖所示。設(shè):DS=093AH,BUFFER物理地址093C3H則:
LEABX,BUFFER后,BX=0023H
MOVBX,BUFFER后,BX=0045H將由源操作數(shù)有效地址EA決定的雙字存儲(chǔ)單元中的第1個(gè)字的內(nèi)容送入指令指定的16位通用Reg,
第2個(gè)字的內(nèi)容傳送給段寄存器DS或ES。
reg16←[EA]DS←[EA+2]差23H093A0H093C3H00H45H…(2)地址指針傳送指令LDS和LES
指令格式:LDS(LES)OPRD1,OPRD216位通用Regmem操作數(shù)第3章80x86/Pentium指令系統(tǒng)例2:LDSSI,[10H]
設(shè):指令執(zhí)行前,DS=C000H,
[C0010H]=0180H,[C0012H]=2000H
則:指令執(zhí)行后,SI=0180H,DS=2000H例3:LDSBX,[DI+1008H]
指令執(zhí)行前,
DS=2500H,DI=2400H,
[28408H]=3344H,[2840AH]=1122H
指令執(zhí)行后,
BX=3344H,DS=1122H
通常,雙字存儲(chǔ)單元中是一個(gè)32位的地址指針。在2130H和2131H兩個(gè)單元存放著偏移地址;2132H和2133H兩個(gè)單元存放著相應(yīng)的段地址。例1:LDSDI,[2130H]
這里EA=2130H,則有:
[2130H],[2131H]→DI[2132H],[2133H]→DS3.標(biāo)志位傳送指令(指令的操作數(shù)隱含)
CPU通過(guò)這類(lèi)指令對(duì)標(biāo)志寄存器(FR)進(jìn)行保護(hù)與更新。
南京航空航天大學(xué)電子信息工程學(xué)院
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)(2)PUSHF/POPF(標(biāo)志寄存器入棧/出棧)PUSHF:將FR內(nèi)容壓入堆棧,同時(shí)修改堆棧指針。
POPF:將當(dāng)前棧頂?shù)囊粋€(gè)字→FR,同時(shí)修改棧頂指針SP。PUSHFPOP AXOR AH,01H;TF←1PUSH AXPOPF(1)LAHF/SAHF(讀/寫(xiě)標(biāo)志寄存器)利用PUSHF/POPF可以方便的修改FR中某一位。如,8086/8088系統(tǒng)中無(wú)直接能修改TF標(biāo)志位的指令,可用右邊程序段來(lái)實(shí)現(xiàn):在子程序調(diào)用或中斷子程序中,常用此保護(hù)和恢復(fù)需要的標(biāo)志位。LAHF:將FR的低字節(jié)(含SF、ZF、AF、PF和CF)讀出后傳送到AH寄存器。這條指令本身不影響標(biāo)志位。
SAHF:將寄存器AH中的內(nèi)容寫(xiě)入FR的低字節(jié),取代一些標(biāo)志位(SF、ZF、AF、PF和CF)的原來(lái)狀態(tài)。第3章80x86/Pentium指令系統(tǒng)4.輸入/輸出數(shù)據(jù)傳送指令I(lǐng)N/OUTx86CPU中的16條I/O地址線(xiàn),可形成:
64K個(gè)傳送8位數(shù)據(jù)的端口地址;或32K個(gè)傳送16位數(shù)據(jù)的端口地址。指令格式:IN累加器,外設(shè)端口地址
OUT外設(shè)端口地址,累加器注意:
①I(mǎi)/O指令只能使用累加器,不能用其他Reg.②I/O指令有字節(jié)/字兩種方式,選用哪種取決于外設(shè)端口的數(shù)據(jù)寬度。專(zhuān)門(mén)用于在A(yíng)L或AX寄存器與I/O端口之間傳送信息。①當(dāng)端口地址<256(使用8根地址線(xiàn)):采用直接尋址方式,在指令中直接指定端口地址。②當(dāng)端口地址≥256(使用8~16根地址線(xiàn)):采用間接尋址方式,端口地址放在DX中。端口--信息(數(shù)據(jù))傳輸通道
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)具體指令有:
INAL,imm8OUTimm8,ALINAX,imm8OUTimm8,AX;[imm8+1],[imm8]←AXINAL,DXOUTDX,ALINAX,DXOUTDX,AX例:
INAX,20H;從端口20H和21H輸入16位數(shù)據(jù)到AXMOVDX,3F0HINAL,DX;從端口03F0H輸入8位數(shù)據(jù)到ALOUT27H,AL;將8位數(shù)據(jù)從AL輸出到端口27HOUTDX,AX;將16位數(shù)從AX輸出到DX和DX+1指定的端口第3章80x86/Pentium指令系統(tǒng)8086/8088在存儲(chǔ)器中存放數(shù)的方法:num1單元中有一個(gè)16位數(shù)1234H,num2單元中有一個(gè)32位數(shù)12345678H。3.3.2算術(shù)運(yùn)算類(lèi)指令(共20條)壓縮BCD數(shù):一個(gè)字節(jié)0~99非壓縮BCD數(shù):一個(gè)字節(jié)0~9算術(shù)運(yùn)算的數(shù)據(jù)類(lèi)型
加減乘除(帶\不帶進(jìn)位加)(帶\不帶借位減)
加減加減乘除壓縮BCD數(shù)
(無(wú)符號(hào))非壓縮BCD數(shù)
(無(wú)符號(hào))
二進(jìn)制數(shù)
(無(wú)、有符號(hào))num1num1+1num2num2+1num2+2num2+312H34H56H78H12H34H
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)特征:所有的算術(shù)類(lèi)指令幾乎都影響Flag。這些標(biāo)志可供條件轉(zhuǎn)移指令測(cè)試,以改變程序的走向。
算術(shù)運(yùn)算指令與狀態(tài)標(biāo)志除CBW、CWD不影響標(biāo)志,INC、DEC不改變CF外。(1)加減法類(lèi)指令①加減法指令A(yù)DD/SUB1.二進(jìn)制算術(shù)運(yùn)算指令指令格式:ADDOPRD1,OPRD2
SUBOPRD1,OPRD2
;OPRD1←OPRD1±OPRD2
源:Reg,mem,imm;目標(biāo):Reg,mem;注意:兩個(gè)操作數(shù)同為帶符號(hào)或不帶符號(hào)數(shù),長(zhǎng)度相等;兩個(gè)操作數(shù)不能同時(shí)為mem;運(yùn)算影響所有狀態(tài)標(biāo)志位。第3章80x86/Pentium指令系統(tǒng)
例:設(shè)AX=65A0H,BX=B79EH,執(zhí)行ADDAX,BX:
0110010110100000+)101101111001111010001110100111110最高位有進(jìn)位,CF=1結(jié)果非0,ZF=0最高位是0,SF=0無(wú)進(jìn)位,AF=0最高/次高位都有進(jìn)位,OF=0低8位5個(gè)1,PF=0CF=1——若BX、AX是無(wú)符號(hào)數(shù),則運(yùn)算結(jié)果>65535。OF=0——若BX、AX中是帶符號(hào)數(shù),則運(yùn)算結(jié)果在16位補(bǔ)碼所能表示的范圍(-32768~32767)內(nèi)。由以上結(jié)果知:具體指令如下:
ADD reg,reg/mem/imm;reg←reg+(reg/mem/imm)ADD mem,reg/imm;mem←mem+(reg/imm)SUB reg,reg/mem/imm;reg←reg–(reg/mem/imm)SUB mem,reg/imm;mem←mem–(reg/imm)
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)
0110010110100000+)0100100001100010[B79EH]求補(bǔ)
1010111000000010無(wú)進(jìn)位有借位,CF=1結(jié)果非0,ZF=0最高位是1,SF=1無(wú)進(jìn)位,有借位,AF=1最高位無(wú)進(jìn)位/次高位有進(jìn)位,OF=1低8位1個(gè)1,PF=0指令SUBAX,BX的執(zhí)行情況是:
CF=1——若兩個(gè)操作數(shù)是無(wú)符號(hào)數(shù),則表示不夠減,運(yùn)算結(jié)果是以216為模的差值的補(bǔ)碼。OF=1——若兩個(gè)數(shù)為帶符號(hào)數(shù),則運(yùn)算結(jié)果超出了
(-32768~32767)的范圍,AX中不是正確的結(jié)果。由以上結(jié)果知:第3章80x86/Pentium指令系統(tǒng)例:兩個(gè)4字節(jié)數(shù)分別放在FIRST和SECOND開(kāi)始的存儲(chǔ)區(qū)中,變量定義如下。②帶進(jìn)位、借位的加減法指令A(yù)DC/SBB
指令格式:ADCOPRD1,OPRD2 SBBOPRD1,OPRD2
;OPRD1←OPRD1±OPRD2±CF
主要用于多精度數(shù)(兩個(gè)字節(jié)以上)運(yùn)算。具體指令如下:
ADC reg,reg/mem/imm ;reg←reg+(reg/mem/imm)+CFADC mem,reg/imm;mem←mem+(reg/imm)+CFSBB reg,reg/mem/imm;reg←reg–(reg/mem/imm)–CFSBB mem,reg/imm;mem←mem–(reg/imm)–CF(DW是匯編語(yǔ)言偽指令,它為變量FIRST、SECOND按字分配存儲(chǔ)單元)FIRSTDW2211H,4433H;定義變量FIRST=44332211HSECOND
DW6655H,8877H;定義變量SECOND=88776655H
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)結(jié)論:低位的CF對(duì)高位有貢獻(xiàn),低位的OF無(wú)意義,高位運(yùn)算的OF才為整個(gè)運(yùn)算結(jié)果的OF。MOVAX,SECOND;取第2個(gè)加數(shù)的低16位ADDFIRST,AX;與第1個(gè)加數(shù)的低16位相加,
;和存回FIRST。如有進(jìn)位則CF=1。MOVAX,SECOND+2;取32位數(shù)據(jù)SECOND的高16位ADC
FIRST+2,AX ;將兩個(gè)數(shù)的高16位相加并加上CF, ;和存回FIRST的高16位。用字相加指令實(shí)現(xiàn)兩個(gè)變量的和,和存放于FIRST變量中:FIRSTDW2211H,4433H;定義變量FIRST=44332211HSECOND
DW6655H,8877H;定義變量SECOND=88776655H第3章80x86/Pentium指令系統(tǒng)
例:INCCX ;CX寄存器中的內(nèi)容加1DEC[BX] ;(此指令有不確定性)
例:實(shí)現(xiàn)100-AL。
NEGALADDAL,100④求補(bǔ)指令NEG(對(duì)一個(gè)數(shù)求補(bǔ)得到它相反數(shù)的補(bǔ)碼。做減法時(shí)用)
指令格式:NEGOPRD
;OPRD←0-OPRD
;當(dāng)OPRD=0時(shí),CF=0。OPRD≠0,CF=1。;對(duì)-128、-32768求補(bǔ)時(shí),操作數(shù)無(wú)變化,OF置位。;操作數(shù)可以是reg,mem
③
增量和減量指令I(lǐng)NC/DEC
指令格式:INCOPRD
;OPRD←OPRD±1
DECOPRD
;INC/DEC指令不影響CF
;操作數(shù)可以是reg,mem減去一個(gè)數(shù)可以轉(zhuǎn)化為加上它的求補(bǔ)值:
X補(bǔ)-Y補(bǔ)=[X]補(bǔ)+[-Y]補(bǔ)=[X]補(bǔ)+{[Y]}求補(bǔ)
常用于調(diào)整地址指針和計(jì)數(shù)器第3章80x86/Pentium指令系統(tǒng)⑤比較指令CMP
指令格式:CMPOPRD1,OPRD2
;OPRD1-OPRD2,但不送回,影響標(biāo)志。;源操作數(shù):imm/reg/mem,目標(biāo):reg/mem。
無(wú)符號(hào)數(shù)的比較(ZF,CF)
相等(ZF=1)
;
不相等CF=
0,
OPRD1>OPRD2CF=
1,
OPRD1<OPRD2
帶符號(hào)數(shù)的比較(ZF,SF⊕OF的值)
相等(ZF=1);不相等例:CMPAL,BL;AL-BL,保持寄存器的值不變
JNZEQUAL;若ZF=0(不等),轉(zhuǎn)EQUAL處
…… ;ZF=1(相等)情況下的處理CMP指令執(zhí)行后,可以根據(jù)受影響的標(biāo)志位狀態(tài)判斷兩個(gè)操作數(shù)的大小。判斷無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)大小的條件有所不同:
在CMP指令后面常跟條件轉(zhuǎn)移指令,根據(jù)比較結(jié)果產(chǎn)生不同的分支轉(zhuǎn)移。SF⊕OF=0,則OPRD1>OPRD2SF⊕OF=1,則OPRD1<OPRD2因此,有無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)兩類(lèi)條件轉(zhuǎn)移指令第3章80x86/Pentium指令系統(tǒng)
(2)乘除法類(lèi)指令
①乘法指令MUL/IMUL
指令格式:MULOPRD
(無(wú)符號(hào)數(shù)相乘)
IMULOPRD
(帶符號(hào)數(shù)相乘)
;AX←AL×reg8,AL×mem8
;(DX,AX)←AX×reg16,AX×mem16
此指令為乘積保留了兩倍于原操作數(shù)的存儲(chǔ)空間,因而不會(huì)溢出。此指令只影響OF、CF,其余標(biāo)志位為任意值。當(dāng)CF=OF=1,表明乘積為16位或32位,高半部分不為0。當(dāng)CF=OF=0,表明乘積為8位或16位,高半部分為低8位的符號(hào)擴(kuò)展.該指令只出現(xiàn)源操作數(shù)(可以是Reg,mem),目標(biāo)操作數(shù)隱含。
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)②
除法指令DIV/IDIV
指令格式:DIV OPRDIDIV OPRD
;AH,AL←AX/OPRD的余數(shù),商;DX,
AX←(DX:AX)/OPRD的余數(shù),商
DIV和IDIV分別用來(lái)實(shí)現(xiàn)無(wú)符號(hào)數(shù)的除法和有符號(hào)數(shù)的除法。指令執(zhí)行后,所有標(biāo)志位狀態(tài)不確定。對(duì)DIV:若商超過(guò)存放它的Reg容量(字節(jié)相除時(shí)為FFH,字相除時(shí)為FFFFH),則引起0型中斷(除法出錯(cuò)),且商和余數(shù)不定。對(duì)IDIV:商的符號(hào)根據(jù)代數(shù)符號(hào)規(guī)則確定,余數(shù)的符號(hào)與被除數(shù)相同
注意:在除法運(yùn)算中,要求被除數(shù)的長(zhǎng)度為除數(shù)長(zhǎng)度的兩倍。該指令只出現(xiàn)源操作數(shù)(Reg或mem),目標(biāo)操作數(shù)隱含。若被除數(shù)和除數(shù)是具有相同位數(shù)的字節(jié)或字:
需先將被除數(shù)擴(kuò)展為字或雙字,且大小和符號(hào)不變。再做除法。第3章80x86/Pentium指令系統(tǒng)擴(kuò)展規(guī)則如下:
CBW將AL中的字節(jié)符號(hào)數(shù)的符號(hào)擴(kuò)展到AH中;
CWD將AX中的字符號(hào)數(shù)的符號(hào)擴(kuò)展到DX中。
CBW和CWD指令都不影響任何標(biāo)志。
若AL<80H,則AH←0;若AL≥80H,則AH←FFH
若AX<8000H,則DX←0;若AX≥8000H,則DX←FFFFH結(jié)論:對(duì)帶符號(hào)數(shù),其高位擴(kuò)展應(yīng)同于原符號(hào)位;對(duì)無(wú)符號(hào)數(shù),只需對(duì)高位的字節(jié)或字直接補(bǔ)0。2.符號(hào)擴(kuò)展指令CBW/CWD指令格式:CBW/CWD;將有符號(hào)操作數(shù)從字節(jié)(字)轉(zhuǎn)換成字(雙字);操作數(shù)隱含規(guī)定在累加器(AL或AX)中例:對(duì)8位機(jī),-3為11111101;對(duì)16位機(jī),-3為1111111111111101
對(duì)8位機(jī),+3為00000011;對(duì)16位機(jī),+3為0000000000000011
南京航空航天大學(xué)電子信息工程學(xué)院第3章80x86/Pentium指令系統(tǒng)例:設(shè)AL=B4H,(無(wú)符號(hào)數(shù)180,帶符號(hào)數(shù)-76)BL=11H,(無(wú)符號(hào)數(shù)17,帶符號(hào)數(shù)17)
用MULBL,則AX=0BF4H(無(wú)符號(hào)數(shù)3060),CF=OF=1
用IMULBL,則AX=FAF4H(帶符號(hào)數(shù)-1292),CF=OF=1例:完成無(wú)/有符號(hào)數(shù)除法DP1/DP2
無(wú):XORAH,AH;擴(kuò)展到字
MOVAL,DP1DIVDP2;商在A(yíng)L中,余數(shù)在A(yíng)H中有:MOVAL,DP1CBW;擴(kuò)展到字
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市老舊住宅加裝電梯政策執(zhí)行績(jī)效評(píng)價(jià)研究
- 二零二五廠(chǎng)房施工合同范本:綠色施工監(jiān)理服務(wù)協(xié)議3篇
- 基于多源遙感數(shù)據(jù)的夏玉米氮素營(yíng)養(yǎng)診斷和產(chǎn)量預(yù)測(cè)
- 建筑業(yè)綠色全要素生產(chǎn)率時(shí)空演化效應(yīng)研究
- 2025債權(quán)債務(wù)轉(zhuǎn)讓合同
- 一年級(jí)數(shù)學(xué)計(jì)算題專(zhuān)項(xiàng)練習(xí)1000題匯編
- 適應(yīng)性納米顆粒介導(dǎo)的線(xiàn)粒體穩(wěn)態(tài)和炎癥調(diào)節(jié)在感染性骨缺損中的應(yīng)用及機(jī)制研究
- 二零二五年度大澤15kw柴油發(fā)電機(jī)組租賃與維護(hù)服務(wù)合同4篇
- 赤峰市聯(lián)考數(shù)學(xué)試卷
- 2025公司商業(yè)合作合同范本
- 獅子王影視鑒賞
- 一年級(jí)數(shù)學(xué)加減法口算題每日一練(25套打印版)
- 2024年甘肅省武威市、嘉峪關(guān)市、臨夏州中考英語(yǔ)真題
- DL-T573-2021電力變壓器檢修導(dǎo)則
- 繪本《圖書(shū)館獅子》原文
- 安全使用公共WiFi網(wǎng)絡(luò)的方法
- 2023年管理學(xué)原理考試題庫(kù)附答案
- 【可行性報(bào)告】2023年電動(dòng)自行車(chē)相關(guān)項(xiàng)目可行性研究報(bào)告
- 歐洲食品與飲料行業(yè)數(shù)據(jù)與趨勢(shì)
- 放療科室規(guī)章制度(二篇)
- 中高職貫通培養(yǎng)三二分段(中職階段)新能源汽車(chē)檢測(cè)與維修專(zhuān)業(yè)課程體系
評(píng)論
0/150
提交評(píng)論