微機(jī)原理第三章_第1頁(yè)
微機(jī)原理第三章_第2頁(yè)
微機(jī)原理第三章_第3頁(yè)
微機(jī)原理第三章_第4頁(yè)
微機(jī)原理第三章_第5頁(yè)
已閱讀5頁(yè),還剩112頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論