版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第2章8086/8088指令系統(tǒng)本章內(nèi)容8086的指令格式與編碼18086的尋址方式28086的指令系統(tǒng)380X86的擴(kuò)充指令42023/1/141.8086的指令格式與編碼機(jī)器指令:指令的二進(jìn)制代碼形式。如:89D8H匯編指令:助記符形式的指令。如:MOVAX,BX語法結(jié)構(gòu)符合人類語言的共同特點(diǎn)—?jiǎng)幼鳎珜?duì)象指令操作碼→動(dòng)作:怎么做?指令操作數(shù)→對(duì)象:做什么?2023/1/141.8086的指令格式與編碼操作碼助記符:與動(dòng)作一一對(duì)應(yīng)例: MOVAX,BX目/源操作數(shù):可能有多種組合2023/1/141.8086的指令格式與編碼匯編語言指令操作碼:由CPU設(shè)計(jì)人員定義。每一種操作唯一對(duì)應(yīng)一個(gè)操作碼。操作碼用來規(guī)定計(jì)算機(jī)應(yīng)該做什么樣的操作:例:加法操作助記符ADD;數(shù)據(jù)傳送操作助記符MOV;比較操作助記符CMP操作數(shù):可由編程人員采用不同方式給出。指令格式:指令中對(duì)操作碼、操作數(shù)的編碼方式。2023/1/141.8086的指令格式與編碼操作數(shù)1)8086指令中操作數(shù)的個(gè)數(shù)可以有以下幾種情況:無操作數(shù)指令,例:等待指令WAIT單操作數(shù)指令,例:加1指令I(lǐng)NCAL雙操作數(shù)指令,例:減法指令SUBAL,BL2023/1/141.8086的指令格式與編碼2)8086指令中根據(jù)不同的作用分以下兩類:源操作數(shù):后者(BL)目的操作數(shù):前者(AL)例:數(shù)據(jù)傳送指令MOVAL,BL一些特殊情況,例:壓棧指令PUSHAX;省略(隱含)目的操作數(shù)加1指令I(lǐng)NCAL;源和目的操作數(shù)一樣空指令NOP
;沒有操作數(shù) 2023/1/141.8086的指令格式與編碼3)操作數(shù)存放地點(diǎn),可以有以下幾種:立即數(shù):操作數(shù)直接包含在指令中。 例:MOVAL,50H寄存器操作數(shù):操作數(shù)存放在寄存器中。 例:INCAL內(nèi)存操作數(shù):操作數(shù)存放在內(nèi)存單元中。 例:MOVAL,[2000H]
I/O操作數(shù):操作數(shù)來自I/O端口。例:INAL,28H
隱含操作數(shù):操作數(shù)固定。例:PUSHAX2023/1/141.8086的指令格式與編碼指令的書寫格式
操作碼[[操作數(shù)1],[操作數(shù)2]](操作碼:必備;操作數(shù):可以是1個(gè)、2個(gè)或沒有,可以是8位或16位)指令的編碼格式采用變長編碼格式,屬于CISC。便于書寫可讀性強(qiáng)由機(jī)器識(shí)別和執(zhí)行低端
高端指令前綴操作碼字段尋址方式字段操作數(shù)字段1字節(jié)1字節(jié)1字節(jié)1~4字節(jié)2023/1/14本章內(nèi)容8086的指令格式與編碼18086的尋址方式28086的指令系統(tǒng)380X86的擴(kuò)充指令42023/1/142.8086的尋址方式尋址方式:尋找操作數(shù)(地址)的方式2023/1/142.8086的尋址方式2.2.1立即尋址2.2.2寄存器尋址2.2.3直接尋址2.2.4寄存器間接尋址2.2.5變址尋址2.2.6基址尋址2.2.7基址變址尋址2.2.8尋址方式中的操作數(shù)2023/1/142.8086的尋址方式非存儲(chǔ)器尋址方式存儲(chǔ)器尋址方式其它方式立即數(shù)尋址寄存器尋址(寄存器直接尋址)直接尋址(絕對(duì)尋址)間接尋址(寄存器間接尋址)基址尋址變址尋址基址+變址尋址隱含尋址(固定尋址)I/O尋址直接尋址(長格式尋址)間接尋址(短格式尋址)2023/1/142.8086的尋址方式2.2尋址方式(P48)
非存儲(chǔ)器尋址方式2.2.1立即數(shù)尋址
操作數(shù)直接放于指令中,跟在操作碼之后。操作數(shù)以8位或16位常數(shù)的形式出現(xiàn)。 例:MOVAL,29H ;源操作數(shù)立即數(shù)尋址方式常用于給寄存器賦初值,且僅用于源操作數(shù)。
【注意】目標(biāo)操作時(shí)通常是寄存器;源操作數(shù)的位數(shù)必須與目標(biāo)操作數(shù)寄存器匹配;段寄存器不能為目標(biāo)操作數(shù);2023/1/142.2.2寄存器(直接)尋址操作數(shù)放在寄存器中。操作數(shù)以8位或16位寄存器名出現(xiàn)。 例:MOVAL,BL ;源操作數(shù)和目的操作數(shù)寄存器尋址方式可以縮短指令長度,提高指令執(zhí)行速度,使用非常頻繁。【注意】源操作數(shù)的位數(shù)必須與目標(biāo)操作數(shù)寄存器匹配;2023/1/142.8086的尋址方式存儲(chǔ)器尋址方式直接尋址(絕對(duì)尋址)間接尋址(寄存器間接尋址)
基址尋址
變址尋址
基址加變址尋址
在這類方式中,操作對(duì)象總是存放在某存儲(chǔ)單元,計(jì)算機(jī)將根據(jù)指令中的操作數(shù)字段計(jì)算出存儲(chǔ)單元地址。
注意這里均用方括號(hào)表示取地址所在的內(nèi)容2023/1/142.8086的尋址方式2.2.3直接尋址
操作數(shù)在內(nèi)存單元中,而指令中給出的是操作數(shù)的有效地址EA(操作對(duì)象所在單元的段內(nèi)偏移量)。指令中直接給出的8位或16位數(shù)值(用方括號(hào)括?。┘词怯行У刂稥A,即:EA=指令給出的數(shù)值。一般默認(rèn)在數(shù)據(jù)段DS尋址。指令中固定給出的內(nèi)存地址不可改變,靈活性較差。例:MOVAL,[1000H]
;源操作數(shù)EA=1000H,物理地址=(DS)*16+EAMOVES:[20H],AL
;目的操作數(shù)EA=20H,物理地址=(ES)*16+EA注: MOVAX,1000H
;源操作數(shù)=1000H,是立即數(shù)尋址2023/1/142.8086的尋址方式直接尋址過程示意圖DS(默認(rèn)段)值0000ES值0000SS值0000CS值0000
Bit19430+)0016H:000000000001011020位物理地址……××××MemoryMOVAX,[0016H]AHAL2023/1/142.8086的尋址方式存儲(chǔ)器尋址中的段超越前綴概念:從DS段外的其它段中尋找操作數(shù)MOVAX,[2000H]
MOVAX,DS:[2000H]MOVAX,SS:[2000H]MOVAX,ES:[2000H]MOVAX,CS:[2000H]
注:給出段符時(shí),確定了操作數(shù)的段屬性注:省略段符時(shí),隱含為DS段2023/1/142.2.4寄存器間接尋址----操作數(shù)包含EA的寄存器特點(diǎn):允許EA的寄存器:SI,DI,BX,BP如果這四個(gè)寄存器中存放了EA,指令中必須用方括號(hào)括住寄存器間接尋址允許段超越例DS=5000H,SI-1230HMOVBX,[SI]例SS=1000H,BP=3000H,AX=789AHMOV[BP],AX2023/1/142.8086的尋址方式間接尋址特點(diǎn)
指令中用寄存器和可選的8位或16位位移量給出操作對(duì)象所在的段內(nèi)偏移量,而不是操作對(duì)象本 身,即:EA=寄存器的值+位移量??梢杂糜陂g接尋址的寄存器只有BX、BP、SI、DI
四個(gè),其中僅當(dāng)使用BP時(shí)默認(rèn)在堆棧段SS尋址,使用BX、SI、DI時(shí)默認(rèn)在數(shù)據(jù)段DS尋址。位移量也可以用符號(hào)地址表示,可以寫在寄存器名前,也可寫在寄存器名后,甚至可以寫在方括號(hào)內(nèi)。間接尋址方式使用非常靈活,可用于對(duì)一維或二維數(shù)組類數(shù)據(jù)的尋址。2023/1/142.2.5變址尋址----直接尋址和寄存器間接尋址的組合特點(diǎn):變址寄存器:SI或DI使用SI時(shí),EA=SI+disp,DS:EA使用DI時(shí),EA=DI+disp,DS:EA變址尋址允許段超越MOVBX,[SI][1300H]MOVBX,[SI]1300HMOVBX,1300H[SI]MOVBX,[SI]+[1300H]2023/1/142.2.6基址尋址----與變址尋址相似,但使用寄存器BX或BP特點(diǎn):能使用寄存器:BX或BP使用BX時(shí),EA=BX+disp,DS:EA使用BP時(shí),EA=BP+disp,SS:EA變址尋址允許段超越MOVAX,[BX][1300H]MOVDX,[BP][1300H]2023/1/142.2.7基址變址尋址----基址尋址與變址尋址的結(jié)合特點(diǎn):使用一個(gè)基址寄存器(BX或BP)和一個(gè)變址寄存器(SI或DI)EA=BX或BP+SI或DI+disp如果指令使用了BX,段地址則是DS;指令使用BP,則段地址是SS不允許BX和BP組合在一起不允許SI和DI組合在一起MOVAX,[BX][1300H][SI]MOVDX,[BP][1300H][DI]2023/1/14其他尋址方式:固定尋址
固定尋址方式也稱為隱含尋址方式,操作對(duì)象(或其地址)并不在指令中出現(xiàn),而隱含為某一固定內(nèi)容。例:PUSHF
源操作數(shù)為標(biāo)志寄存器目的操作數(shù)為SS:SP所指示的1字堆棧空間
MOVSB
源操作數(shù)為DS:SI所指字節(jié)單元 目的操作數(shù)為ES:DI所指字節(jié)單元2023/1/14其他尋址方式:端口尋址直接(長格式)尋址:地址以常數(shù)形式直接出現(xiàn)在指令中,可尋址的端口地址范圍為00H~0FFH,共256個(gè)字節(jié)端口。例:IN AX,20H ;端口地址20HOUT204,AL ;端口地址204(0CCH)間接(短格式)尋址:地址存放在寄存器DX中。規(guī)定端口地址大于0FFH
時(shí)必須使用間接尋址方式。當(dāng)然,端口地址在0FFH以內(nèi)時(shí)也可用間接尋址,即可尋址空間為0000H~0FFFFH,共64K個(gè)字節(jié)端口。例:MOVDX,125INAL,DX
;必須使用間接尋址
MOVDX,50H OUTDX,AL ;也可用直接尋址2023/1/142.8086的尋址方式各種尋址方式下段寄存器的使用規(guī)則對(duì)指令尋址直接尋址使用BX、SI、DI的間接尋址使用BP的間接尋址默認(rèn)段寄存器可加的段超越前綴固定搭配的寄存器DSDSSSES:SS:CS:ES:SS:CS:DS:ES:CS:—BX、SI、DIBP堆棧操作源串指針目標(biāo)串指針指令指針SS—SPDSSIES:SS:CS:—ESDICS—IP2023/1/142.2.8尋址方式中的操作數(shù)立即數(shù)操作數(shù);寄存器操作數(shù);存儲(chǔ)器操作數(shù)
立即尋址
MOVAX,2000H
操作數(shù)在CS段寄存器尋址
MOVAX,BX
操作數(shù)在寄存器中存儲(chǔ)器尋址
MOVAX,[BX]
操作數(shù)在DS段2023/1/141立即數(shù)操作數(shù)使用立即數(shù)的指令:數(shù)據(jù)傳送指令;算術(shù)運(yùn)算指令(乘法和除法除外);邏輯運(yùn)算指令立即數(shù)只能作為源操作數(shù)
2023/1/142寄存器操作數(shù)通用寄存器:四個(gè)16位寄存器:AX,BX,CX,DX存放字操作數(shù)也可當(dāng)做8位寄存器:AH,AL,BH,BL,CH,CL,DH,DL存放字節(jié)操作數(shù);算數(shù)和邏輯運(yùn)算中,可作為累加器使用段寄存器:DS,SS,CS,ES存放當(dāng)前段地址DS,ES,SS需要置初值時(shí),將立即數(shù)傳送到通用寄存器中(如AX),再傳送到有關(guān)的段寄存器CS不允許用戶賦值2023/1/142存儲(chǔ)器操作數(shù)不允許存儲(chǔ)器到存儲(chǔ)器的操作四個(gè)16位寄存器:AX,BX,CX,DX存放字操作數(shù)存儲(chǔ)器操作數(shù)的指令執(zhí)行速度最快,立即數(shù)操作數(shù)指令次之,存儲(chǔ)器操作數(shù)指令執(zhí)行速度最慢存儲(chǔ)器默認(rèn)的段寄存器允許段超越的寄存器存儲(chǔ)器默認(rèn)的段寄存器允許段超越的寄存器IPCS無SIDSCS,ES,SSSPSS無DIESCS,ES,SSEADSCS,ES,SSBPSSCS,DS,ES2023/1/14本章內(nèi)容8086的指令格式與編碼18086的尋址方式28086的指令系統(tǒng)380X86的擴(kuò)充指令42023/1/143.8086的指令系統(tǒng)2.3.1數(shù)據(jù)傳送指令(P56)2.3.2算術(shù)運(yùn)算指令(P64)2.3.3邏輯運(yùn)算及移位指令(P73)2.3.4串操作指令(P79)2.3.5轉(zhuǎn)跳指令(P84)2.3.6處理器控制指令(P94)2023/1/143.1數(shù)據(jù)傳送指令
通用數(shù)據(jù)傳送指令MOV
(P56)堆棧操作指令PUSH、POP
(P57)交換指令XCHG
(P60)查表指令XLAT
(P60)地址傳送指令LEA、LDS、LES
(P61)標(biāo)志傳送指令(P62)
LAHF、SAHF、PUSHF、POPF2023/1/143.1數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令MOV功能:將源操作數(shù)內(nèi)容復(fù)制到目操作數(shù)中MOVdst,src ;(dst)←(src)寄存器(CS不作目的數(shù))立即數(shù)段寄存器存儲(chǔ)器2023/1/143.1數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令MOV例: MOVAX,CS MOVAL,125MOVMEM,15 MOVSI,BX MOVDS,AX MOV[BS]:50H MOVAXDISP[BX][SI]2023/1/143.1數(shù)據(jù)傳送指令注意:不影響標(biāo)志位;立即數(shù)、CS段寄存器不能做目的操作數(shù);兩個(gè)存儲(chǔ)單元之間不能直接進(jìn)行數(shù)據(jù)傳送;兩個(gè)段寄存器之間不能直接進(jìn)行數(shù)據(jù)傳送;不能直接給段寄存器送立即數(shù);兩操作數(shù)必須等長傳送可通過通用寄存器2023/1/143.1數(shù)據(jù)傳送指令通用寄存器的橋梁作用seg→r→segMOVAX,ESMOVDS,AXimm→r→segMOVAX,2000HMOVDS,AXMOVDS,ESseg←×→segMOVDS,2000Himm×→segm→r→m
MOVAX,[20H]MOV[BX],AXMOV[BX],[20H]m←×→m思考:MOV[BX],20H?2023/1/143.1數(shù)據(jù)傳送指令堆棧操作指令入棧指令PUSH
PUSHsrc;SP←SP-2(SP+1)←src(H)(SP)←src(L)src
reg16mem16seg出棧指令POPPOPdst;dst(L)←(SP)dst(H)←(SP+1)SP←SP+2dstreg16mem16Seg(除CS)例:PUSHAXPUSHWORDPTR[BP]POPESPOPWORDPTR[BP][SI]2023/1/143.1數(shù)據(jù)傳送指令入棧操作示例設(shè)有SS=3200H,SP=0800H,AX=105CH。SP=0800H→32800H……StackPUSHAXSP=SP-1→327FFHSP=SP-1→327FEHSP=07FEH5CHAL10HAH2023/1/143.1數(shù)據(jù)傳送指令出棧操作示例設(shè)有SS=3200H,SP=07FEHPOPAXSP=SP+1→32800HSP=SP+1→327FFHSP=07FEH→327FEH……Stack10H5CHSP=0800HAX=105CHAHAL5CH10H2023/1/143.1數(shù)據(jù)傳送指令一定是16位操作,即壓入和彈出的一定是字單元,且高字節(jié)總是在高地址單元;不允許使用立即數(shù)作為操作數(shù)不能以CS、IP作為目的操作數(shù)因?yàn)?086系統(tǒng)的堆棧是向下(低地址端)生成的,并且是實(shí)棧頂,所以入棧時(shí)總是SP先減2再壓入字,而出棧時(shí)總是先彈出字再將SP加2;堆棧中的數(shù)據(jù)總是先進(jìn)后出;不影響標(biāo)志位堆棧操作注意2023/1/143.1數(shù)據(jù)傳送指令交換指令XCHG可使用的操作數(shù)類型組合:
XCHGCL,DH ;通用寄存器通用寄存器
XCHGAX,[BP] ;通用寄存器存儲(chǔ)器功能:將源、目操作數(shù)的內(nèi)容互相交換,指令執(zhí)行后源、目操作數(shù)同時(shí)被改變指令形式:XCHGop1,op2;(op1)(op2)op1:R,M;op2:R,M立即數(shù)為什么不能做操作數(shù)?寄存器存儲(chǔ)器2023/1/143.1數(shù)據(jù)傳送指令交換指令XCHG注意不能直接交換兩個(gè)存儲(chǔ)單元的值;任一個(gè)操作數(shù)都不能是段寄存器或立即數(shù);不允許同時(shí)為存儲(chǔ)器操作數(shù);不影響標(biāo)志位2023/1/143.1數(shù)據(jù)傳送指令《例》用MOV、PUSH,POP、XCHG指令
完成兩寄存器AX、BX中數(shù)據(jù)的交換
(討論所用機(jī)器碼數(shù)量)
用MOV指令
用PUSH指令
POP
用XCHG指令MOVCX,AXMOVAX,BXMOVBX,CX
6字節(jié)機(jī)器碼PUSHAXPUSHBXPOPAXPOPBX
4字節(jié)機(jī)器碼XCHGAX,BX
1字節(jié)機(jī)器碼2023/1/143.1數(shù)據(jù)傳送指令數(shù)據(jù)查表指令——XLAT
指令格式
指令功能XLAT;(AL)←[(BX)+(AL)]使用XLAT指令前(BX)←表的首地址,(AL)←表的索引值使用XLAT指令使用XLAT指令后(BX)+(AL)地址單元中的字節(jié)數(shù)據(jù)送(AL)2023/1/143.1數(shù)據(jù)傳送指令
如圖,字母A—J共10個(gè)字母的ASCⅡ碼表存放在DS段中,執(zhí)行下列程序后,AL中的值變?yōu)槎嗌?MOVBX,2A00HMOVAL,3
XLAT 2023/1/143.1數(shù)據(jù)傳送指令LED七段顯示碼與顯示數(shù)字的關(guān)系顯示數(shù)字顯示碼03FH103H26DH367H87FH977H3FH03H6DH67H7FH77H用AL代表顯示數(shù)字,用XLAT指令查出對(duì)應(yīng)顯示碼?!˙X)(AL)=0~9…2023/1/143.1數(shù)據(jù)傳送指令目標(biāo)地址傳送指令——LEA
指令格式
指令功能
指令應(yīng)用
LEAreg,mem;(reg)←mem的EA將mem的有效地址(16位段內(nèi)偏移地址)傳送給通用寄存器regMOVBX,2130H
立即數(shù)2130H賦給通用寄存器BXLEABX,[2130H]
地址值2130H賦給通用寄存器BX2023/1/143.1數(shù)據(jù)傳送指令符號(hào)地址的獲得例:將符號(hào)地址BUFF的地址值賦給通用寄存器BX
LEABX,BUFF
指令LEA傳送BUFF的地址值給BXMOVBX,OFFSETBUFF
運(yùn)算符OFFSET返回BUFF的地址值后賦給BXMOVBX,BUFF
注:將BUFF地址單元中的字?jǐn)?shù)據(jù)傳送給BX2023/1/143.1數(shù)據(jù)傳送指令注意LEA指令和OFFSET運(yùn)算符可以完成相同的功能,只是執(zhí)行時(shí)間不同;
LEABX,label;程序運(yùn)行時(shí),取lable的EA到BX中
MOVBX,OFFSETlabel
;匯編時(shí)取lable的EA,運(yùn)行時(shí)放入BX中2023/1/143.1數(shù)據(jù)傳送指令《例》查表求數(shù)字0~9的格雷碼格雷碼表18H34H05H06H09H0AH0CH11H12H14HTABLEDS段
0~9的格雷碼從符號(hào)地址TABLE開始順序存入。編程序段LEABX,TABLE;表首地址賦BXMOVAL,7;表偏為7XLAT;查表注:AL中有7的格雷碼11H2023/1/143.1數(shù)據(jù)傳送指令全地址指針傳送指令——LDS、LES指令格式指令功能
LDSreg16,mem32;(reg)←[mem32:mem32+1](DS)←[mem32+2:mem32+3]LESreg16,mem32;(reg)←[mem32:mem32+1](ES)←[mem32+2:mem32+3]LDS,32位目標(biāo)地址送段寄存器DS和通用寄存器regLES,32位目標(biāo)地址送段寄存器ES和通用寄存器reg2023/1/143.1數(shù)據(jù)傳送指令指令LEA與LDS,LES的區(qū)別
LEAreg,mem
mem
表示存儲(chǔ)器單元地址本身
LDSreg16,mem32LESreg16,mem32
mem
表示存儲(chǔ)器單元地址中的地址值
2023/1/143.1數(shù)據(jù)傳送指令指令LEA與LDS,LES的比較已知:DS=09A0H,BX=0048HLEADI,[BX]LDSDI,[BX]LESDI,[BX]→執(zhí)行后:DI=0048H→執(zhí)行后:DI=003EHDS=0816H→執(zhí)行后:DI=003EHES=0816HDS=09A008H……3EH00H16H0048H0049H004AH004BH2023/1/143.1數(shù)據(jù)傳送指令標(biāo)志傳送指令——LAHF、SAHF
LAHF;(AH)←(F)低8
讀標(biāo)志寄存器的低8位到寄存器AH的指令
SAHF;(F)低8←(AH)
將AH的值寫入標(biāo)志寄存器的低8位的指令
注:字節(jié)傳送方式
16位標(biāo)志寄存器中的低8位數(shù)據(jù)傳送即狀態(tài)標(biāo)志位CF、AF、ZF、SF、PF的傳送2023/1/143.1數(shù)據(jù)傳送指令標(biāo)志傳送指令——PUSHF、POPF
PUSHF
標(biāo)志寄存器的入棧指令
POPF
標(biāo)志寄存器的出棧指令注:字傳送方式
16位標(biāo)志寄存器中的16位數(shù)據(jù)傳送即狀態(tài)標(biāo)志位OF、CF、AF、ZF、SF、PF的傳送及控制標(biāo)志位IF、DF、TF的傳送2023/1/14(1)LAHF;AH(2)SAHF;FR低8位(3)PUSHF;SP;[SP+1]
;[SP](4)POPF;FR低8位;FR高8位;SPFR低8位AHSP-2FR高8位FR低8位[SP][SP+1]SP+22023/1/143.1數(shù)據(jù)傳送指令注意
操作數(shù)全部隱含PUSHF和POPF指令一般用于保護(hù)FR內(nèi)容;LAHF和SAHF指令一般用于修改FR內(nèi)容:
LAHF ;將FR的低8位送入AH …… ;修改AH的值
SAHF ;將修改后的值重新送回FR上述方法顯然只能處理FR的低8位,如需處理FR中的任一位,可用以下方法:
PUSHF ;將FR的值壓入堆棧
POPAX ;將剛壓入的FR值彈出到AX中
…… ;修改AX的值
PUSHAX ;將修改后的值壓入堆棧
POPF ;將修改后的值彈出到FR中2023/1/143.1數(shù)據(jù)傳送指令數(shù)據(jù)傳送類指令總結(jié)
源、目操作數(shù)長度必須一致。源、目操作數(shù)不能同時(shí)是存儲(chǔ)器操作數(shù)。源、目操作數(shù)不能同時(shí)是段寄存器。立即數(shù)和代碼段寄存器CS不能作目操作數(shù)。當(dāng)目操作數(shù)是段寄存器時(shí),源操作數(shù)不能是立即數(shù)??梢允褂枚渭拇嫫鞯闹噶睿篗OV、PUSH、POP。除XCHG指令外,其它數(shù)傳指令僅改變目操作數(shù),源操作數(shù)保持不變。除SAHF、POPF指令外,其它數(shù)傳指令的執(zhí)行不影響標(biāo)志位。對(duì)所有指令都適用!2023/1/14算術(shù)運(yùn)算類指令加法指令
減法指令
乘法指令
除法指令
ADD,ADC指令、INC指令、DAA,AAA指令SUB,SBB指令、DEC指令、DAS,AAS指令NEG指令、CMP指令MUL,IMUL指令、AAM指令DIV,IDIV指令、AAD指令2023/1/14算術(shù)運(yùn)算類指令計(jì)算機(jī)中運(yùn)算指令的特點(diǎn)對(duì)十進(jìn)制加、減、乘、除的應(yīng)用是小學(xué)問題對(duì)二進(jìn)制加、減、乘、除的應(yīng)用是大學(xué)問題對(duì)有限位二進(jìn)制加、減、乘、除的應(yīng)用是計(jì)算機(jī)中必須解決的問題2023/1/14算術(shù)運(yùn)算類指令計(jì)算機(jī)中運(yùn)算指令的特點(diǎn)
除了除法指令及符號(hào)擴(kuò)展指令外,其它算術(shù)運(yùn)算指令都將影響各狀態(tài)標(biāo)志,不同的指令對(duì)各狀態(tài)標(biāo)志的影響也不同;加、減法運(yùn)算時(shí)所有數(shù)據(jù)長度相等,乘法運(yùn)算時(shí)結(jié)果長度加倍,除法運(yùn)算時(shí)被除數(shù)長度加倍;乘除法運(yùn)算時(shí)使用隱含操作數(shù);可以使用BCD碼進(jìn)行算術(shù)運(yùn)算,并可用相應(yīng)的調(diào)整指令對(duì)結(jié)果進(jìn)行調(diào)整以保證結(jié)果仍為BCD碼;2023/1/14算術(shù)運(yùn)算類指令運(yùn)算指令對(duì)狀態(tài)標(biāo)志位的影響無符號(hào)數(shù)運(yùn)算影響狀態(tài)標(biāo)志位CF
有符號(hào)數(shù)運(yùn)算影響狀態(tài)標(biāo)志位OF
有符號(hào)數(shù)運(yùn)算結(jié)果的正負(fù)值影響狀態(tài)標(biāo)志位SF
兩數(shù)運(yùn)算結(jié)果是否為0影響狀態(tài)標(biāo)志位ZF
兩數(shù)低4位運(yùn)算影響狀態(tài)標(biāo)志位AF
兩數(shù)運(yùn)算結(jié)果中1的量影響狀態(tài)標(biāo)志位PF2023/1/14算術(shù)運(yùn)算類指令計(jì)算機(jī)中兩數(shù)運(yùn)算后的溢出檢測對(duì)無符號(hào)數(shù)測狀態(tài)標(biāo)志位CF
對(duì)有符號(hào)數(shù)測狀態(tài)標(biāo)志位OF
CF的特點(diǎn)兩數(shù)運(yùn)算后CF=0,表示運(yùn)算結(jié)果未超界,無溢出兩數(shù)運(yùn)算后CF=1,表示運(yùn)算結(jié)果己超界,有溢出
OF的特點(diǎn)兩數(shù)運(yùn)算后OF=0,表示運(yùn)算結(jié)果未超界,無溢出兩數(shù)運(yùn)算后OF=1,表示運(yùn)算結(jié)果己超界,有溢出
注:溢出即加法有進(jìn)位,減法有借位注:溢出即運(yùn)算出現(xiàn)錯(cuò)誤2023/1/14算術(shù)運(yùn)算類指令二進(jìn)制數(shù)的表值范圍與標(biāo)志
8位無符號(hào)數(shù)
和在數(shù)0~255內(nèi)CF=0
和在數(shù)0~255外CF=1
8位有符號(hào)數(shù)和在數(shù)-128~+127內(nèi)OF=0
和在數(shù)-128~+127外OF=12023/1/14兩個(gè)8位二進(jìn)制數(shù)的加法運(yùn)算及和的溢出分析表示無符號(hào)數(shù)時(shí)——無溢出表示有符號(hào)數(shù)時(shí)——無溢出機(jī)內(nèi)二進(jìn)制數(shù)相加認(rèn)為無符號(hào)數(shù)相加認(rèn)為有符號(hào)數(shù)相加
00000011B+00001100B
3+12
+3++12
00001111B
15<255
+15<+127分析
CF=0,無溢出OF=0,無溢出2023/1/14兩個(gè)8位二進(jìn)制數(shù)的加法運(yùn)算及和的溢出分析表示無符號(hào)數(shù)時(shí)——有溢出表示有符號(hào)數(shù)時(shí)——無溢出機(jī)內(nèi)二進(jìn)制數(shù)相加認(rèn)為無符號(hào)數(shù)相加認(rèn)為有符號(hào)數(shù)相加
00000110B+11111100B
6+252
+6+-4
1←00000010B
258>255
+2<+127分析
CF=1,有溢出OF=0,無溢出2023/1/14兩個(gè)8位二進(jìn)制數(shù)的加法運(yùn)算及和的溢出分析表示無符號(hào)數(shù)時(shí)——無溢出表示有符號(hào)數(shù)時(shí)——有溢出機(jī)內(nèi)二進(jìn)制數(shù)相加認(rèn)為無符號(hào)數(shù)相加認(rèn)為有符號(hào)數(shù)相加
00001000B+01111011B
8+123
+8++123
10000011B
131<255
+131>+127分析
CF=0,無溢出OF=1,有溢出2023/1/14兩個(gè)8位二進(jìn)制數(shù)的加法運(yùn)算及和的溢出分析表示無符號(hào)數(shù)時(shí)——有溢出表示有符號(hào)數(shù)時(shí)——有溢出機(jī)內(nèi)二進(jìn)制數(shù)相加認(rèn)為無符號(hào)數(shù)相加認(rèn)為有符號(hào)數(shù)相加
10000111B+11110101B
135+245
-121+-11
1←01111100B
380>255
-132<-128分析
CF=1,有溢出OF=1,有溢出2023/1/14算術(shù)運(yùn)算——加法類指令加法指令——ADD
指令特點(diǎn)
指令格式
指令功能
不帶進(jìn)位的加法指令A(yù)DDdest,src;dest←dest+src用于低字(字節(jié))相加注:無符號(hào)數(shù)、有符號(hào)數(shù)的加法用相同的指令最常用的加法2023/1/14算術(shù)運(yùn)算——加法類指令加法指令——ADC
指令特點(diǎn)
指令格式
指令功能
帶進(jìn)位的加法指令A(yù)DCdest,src;dest←dest+src+CF用于高字(字節(jié))相加2023/1/14算術(shù)運(yùn)算——加法類指令A(yù)DD、ADC指令的操作數(shù)及類型
OPreg,regOPreg,memOPmem,regOPreg,immOPmem,imm
操作數(shù)
數(shù)據(jù)類型
字節(jié)數(shù)據(jù)類型字?jǐn)?shù)據(jù)類型2023/1/14算術(shù)運(yùn)算——加法類指令A(yù)DD與ADC分析影響所有標(biāo)志位ADC指令的另一個(gè)默認(rèn)操作數(shù)為進(jìn)位位CF;若進(jìn)位標(biāo)志CF=0,則ADD=ADC
無符號(hào)數(shù)、有符號(hào)數(shù)用相同的加法指令對(duì)無符號(hào)數(shù)加法時(shí),判斷標(biāo)志位CF
對(duì)有符號(hào)數(shù)加法時(shí),判斷標(biāo)志位OF
2023/1/14算術(shù)運(yùn)算——加法類指令I(lǐng)NC——加1指令
指令格式
指令功能
影響的標(biāo)志(不影響的標(biāo)志)
允許的操作數(shù)
INCoprd;oprd←oprd+1多用于循環(huán)程序中的地址指針加1OF、SF、ZF、PF、AF(CF)reg、mem2023/1/14例:將存放在20000H和21000H地址處的兩個(gè)32位 數(shù)相加,結(jié) 果放在21000H地址處。
MOV AX,2000HMOV DS,AX;設(shè)置默認(rèn)段基址DS=2000HMOV SI,0 ;使SI指向20000H單元MOV DI,1000H;使DI指向21000H單元MOV AX,[SI];將20000H、20001H單元的16位數(shù)送到AX中ADD [DI],AX;將兩個(gè)32位數(shù)的低16位相加,結(jié)果放21000H處MOV AX,[SI+2];將20002H、20003H單元的16位數(shù)送到AX中ADC [DI+2],AX;將32位的高16位相加,結(jié)果放21002H處MOV [DI+4],0ADC [DI+4],0;處理高16位的進(jìn)位2023/1/14《例》兩雙倍精度字1234FEDCH和11228765H相加
DCHFEH34H12H65H87H22H11HDS段1000H2000H編程存儲(chǔ)圖LEASI,[1000H]LEADI,[2000H]MOVAX,[SI]ADDAX,[DI]MOV[SI],AXMOVAX,[SI+2]ADCAX,[DI+2]MOV[SI+2],AX結(jié)果23H57H86H41H2023/1/14算術(shù)運(yùn)算——加法類指令十進(jìn)制數(shù)的BCD編碼
用4位二進(jìn)制數(shù)對(duì)1位十進(jìn)制數(shù)進(jìn)行編碼8-4-2-1BCD編碼
0000——0、...1001——9組合十進(jìn)制數(shù)
1字節(jié)含2個(gè)BCD編碼的十進(jìn)制數(shù)非組合十進(jìn)制數(shù)
1字節(jié)含1個(gè)BCD編碼的十進(jìn)制數(shù)BCDBCD0000BCD2023/1/14算術(shù)運(yùn)算——加法類指令十進(jìn)制數(shù)的BCD編碼表示
4位二進(jìn)制數(shù)的表值范圍
0000B~1111B、0~15、0H~FH
4位二進(jìn)制數(shù)的BCD編碼表示
0000B~1001B;表示0~9;寫為0H~9H
8位二進(jìn)制數(shù)含兩個(gè)BCD碼,稱組合十進(jìn)制數(shù)
00000000B~10011001B;表示00~99
寫為00H~99H
8位二進(jìn)制數(shù)含一個(gè)BCD碼,稱非組合十進(jìn)制數(shù)
00000000B~00001001B;表示0~9
寫為00H~09H2023/1/14調(diào)整原理:計(jì)算8+900001000
見右式
+0000100100010001=11
結(jié)果應(yīng)為17,而計(jì)算機(jī)相加為11,原因在于運(yùn)算過程中,如遇到低4位往高4位產(chǎn)生進(jìn)位時(shí)(此時(shí)AF=1)是按逢十六進(jìn)一的規(guī)則,但BCD碼要求逢十進(jìn)一,因此只要產(chǎn)生進(jìn)位,個(gè)位就會(huì)少6,這就要進(jìn)行加6調(diào)正。80這個(gè)1代表了16,而實(shí)際上僅應(yīng)為10,即多進(jìn)了6。
2023/1/14實(shí)際上當(dāng)?shù)?位的結(jié)果>9(即A~F之間)時(shí),也應(yīng)進(jìn)行加6調(diào)正(原因是逢十沒有進(jìn)位,故用加6的方法強(qiáng)行產(chǎn)生進(jìn)位)。如對(duì)上例的結(jié)果進(jìn)行加6:
0001000111
+00000110
60001011117
812023/1/14算術(shù)運(yùn)算——加法類指令半字節(jié)(4位二進(jìn)制數(shù))BCD碼和的調(diào)整
和≤9
不調(diào)整,或加0調(diào)整
9<和≤15
先加6調(diào)整,后有AF=1(低4位)、CF=1(高4位)
15<和先有AF=1(低4位)、CF=1(高4位),后加6調(diào)整2023/1/14非組合BCD碼調(diào)整指令A(yù)AA(無操作數(shù))何時(shí)使用?對(duì)什么進(jìn)行調(diào)整?影響標(biāo)志位CF、AF組合BCD碼調(diào)整指令DAA(無操作數(shù))何時(shí)使用?對(duì)什么進(jìn)行調(diào)整?影響SF、ZF、AF、CF、PF兩個(gè)非組合BCD碼相加,想得到非組合BCD碼結(jié)果自動(dòng)調(diào)整AL中的和,非組合BCD碼的結(jié)果存在AL中。若有進(jìn)位,則AH+1→AH兩個(gè)組合BCD碼相加,希望得到組合BCD碼結(jié)果自動(dòng)調(diào)整AL中的和,結(jié)果在AL中產(chǎn)生一個(gè)組合BCD碼的和。若有進(jìn)位,則CF=1算術(shù)運(yùn)算——加法類指令2023/1/14算術(shù)運(yùn)算——加法類指令A(yù)AA——非組合十進(jìn)制數(shù)加法調(diào)整指令
指令格式
指令功能
指令特點(diǎn)AAA;對(duì)兩非組合十進(jìn)制數(shù)相加和(AL中)進(jìn)行調(diào)整調(diào)整后的結(jié)果放在AX中調(diào)整后,AH、AL中均為非組合十進(jìn)制數(shù)指令隱含源、目的操作數(shù)2023/1/14算術(shù)運(yùn)算——加法類指令A(yù)AA指令的工作原理
若(AL)&0FH>9或標(biāo)志AF=1(>15)
則(AL)=(AL)+06H且CF=AF=1
若(AL)&0FH≤9且標(biāo)志AF=0
不調(diào)整(AL)=(AL)+00H
若AF=1、CF=1
結(jié)果(AL)=(AL)&0FH
(AH)=(AH)+CF2023/1/14算術(shù)運(yùn)算——加法類指令
DAA——組合十進(jìn)制數(shù)加法調(diào)整指令
指令格式
指令功能
指令特點(diǎn)00H06H60H66HDAA;(AL)←(AL)+對(duì)兩個(gè)組合十進(jìn)制數(shù)相加和(AL中)進(jìn)行調(diào)整結(jié)果存放在AL中。判斷和值:和≤9、9<和≤15、15<和根據(jù)判斷完成加00H、06H、60H、66H的調(diào)整指令隱含源、目的操作數(shù)2023/1/14算術(shù)運(yùn)算——加法類指令DAA指令的工作原理
若(AL)&0FH>9或標(biāo)志AF=1(>15)
則(AL)=(AL)+06H且AF=1若(AL)&F0H>9或標(biāo)志CF=1(>15)則(AL)=(AL)+60H且CF=12023/1/14算術(shù)運(yùn)算——加法類指令DAA與AAA的討論
DAA指令
一字節(jié)含兩個(gè)BCD編碼的十進(jìn)制數(shù)調(diào)整在AL中進(jìn)行,結(jié)果放入AL中影響標(biāo)志AF、CF
AAA指令一字節(jié)含一個(gè)BCD編碼的十進(jìn)制數(shù),低4位有效、高4位為零調(diào)整在AL中進(jìn)行,結(jié)果放入AX中注意標(biāo)志AF、CF的應(yīng)用2023/1/14算術(shù)運(yùn)算——加法類指令A(yù)AA與DAA分析調(diào)整指令應(yīng)放在加法指令后,并且加法的結(jié)果一定 存放在AL中;使用十進(jìn)制調(diào)整指令請(qǐng)注意操作數(shù)存放的地方。
AAA指令中沒有AH寄存器清零的動(dòng)作。AAA指令對(duì)CF、AF有影響,對(duì)SF、ZF、PF、OF 未定義;而DAA此指令影響CF、AF、SF、 ZF、PF,對(duì)OF未作定義;調(diào)整步驟了解即可;2023/1/14
10001001(89)
+ 01110101(75)
11111110(FEH);高低4位均為非法碼,分別加6調(diào)整十進(jìn)制調(diào)整指令示例+011001101←01100100(164);標(biāo)志CF反映進(jìn)位情況兩個(gè)非組合十進(jìn)制數(shù)06+07相加,調(diào)整后得到十進(jìn)制數(shù)0103
00000110(06)
+ 00000111(07)
00001101(0DH);非法碼
+ 0110
AL 00010011
;組合十進(jìn)制數(shù),再調(diào)整 ;AF=1 (AF←1)AH(1) ;AH←AH+1AH在原有基礎(chǔ)上加1
00001111
;AL&0FH 00000011;(0103)AH的增加與AL一起反映調(diào)整結(jié)果算術(shù)運(yùn)算指令兩個(gè)組合十進(jìn)制數(shù)89+75相加,調(diào)整后得到十進(jìn)制數(shù)16490《例》對(duì)兩個(gè)用BCD碼表示的十進(jìn)制數(shù)2964、4758相加,2964放在符號(hào)地址BCD1開始的地址單元,4758放在符號(hào)地址BCD2開始的地址單元,結(jié)果放在符號(hào)地址BCD3開始的地址單元2023/1/14《例》存儲(chǔ)區(qū)示意圖
64H29H58H47H22H77H
BCD1
BCD2
BCD32964+4758=77222023/1/14《例》程序段
MOVAL,BCD1;(AL)=64HADDAL,BCD2;(AL)=BCHDAA;(AL)=22H,AF=1,CF=1MOVBCD3,ALMOVAL,BCD1+1;(AL)=29HADCAL,BCD2+1;(AL)=71H,AF=1DAA;(AL)=77HMOVBCD3+1,AL2023/1/14《例》算式
MOVAL,BCD1
(AL)=64H=01100100BADDAL,BCD2+BCD2=58H=01011000B---------------------------------------------
(AL)=10111100B
9<和≤15、
9
<和≤15DAA+01100110B----------------------------------------------
(AL)=22H=00100010B
CF=1AF=1
2023/1/14《例》算式MOVAL,BCD+1
(AL)=29H=00101001BADCAL,BCD2+1BCD2+1=47H=01000111B+CF=1B---------------------------------------------
(AL)=01110001B
和≤
9AF=1
DAA+00000110B---------------------------------------------
(AL)=77H=01110111BCF=0AF=02023/1/14算術(shù)運(yùn)算類指令加法指令
減法指令
乘法指令
除法指令
ADD,ADC指令、INC指令、DAA,AAA指令SUB,SBB指令、DEC指令、DAS,AAS指令NEG指令、CMP指令MUL,IMUL指令、AAM指令DIV,IDIV指令、AAD指令2023/1/14算術(shù)運(yùn)算——減法類指令SUB、SBB、DEC——減法指令
不帶借位的減法指令
SUBdest,src;dest←dest-src
影響所有標(biāo)志
帶借位的減法指令
SBBdest,src;dest←dest-src–CF
影響所有標(biāo)志
減1指令
DECsrc;src←src-1影響除CF外的所有標(biāo)志最常用的減法用于高字(字節(jié))相減常用于修改地址指針2023/1/14算術(shù)運(yùn)算——減法類指令DAS、AAS——減法調(diào)整指令
DAS——組合十進(jìn)制數(shù)減法調(diào)整指令
對(duì)AL中用BCD編碼的組合十進(jìn)制數(shù)的差進(jìn)行調(diào)整,結(jié)果在AL中
AAS——非組合十進(jìn)制數(shù)減法調(diào)整指令
對(duì)AL中用BCD編碼的非組合十進(jìn)制數(shù)的差進(jìn)行調(diào)整,結(jié)果在AX中
注:DAA、AAA完成加6調(diào)整
DAS、AAS完成減6調(diào)整2023/1/14算術(shù)運(yùn)算——減法類指令NEG——取負(fù)指令(求補(bǔ)指令)
指令格式
NEGoprd;oprd←0-oprd
指令功能
對(duì)操作數(shù)oprd
求補(bǔ)(注意與補(bǔ)碼區(qū)別)
指令應(yīng)用
完成(AX)=100-(AX)
NEGAX;(AX)=0-(AX)
ADDAX,100H;(AX)=0-(AX)+100
;=100-(AX)2023/1/14注:相當(dāng)于所有位按位取反再加1當(dāng)op1為0時(shí),CF=0;否則,CF=1;op1的值為80H或8000H時(shí),執(zhí)行后結(jié)果不變,但OF=1;例:求表達(dá)式Im-R/M的值。
SUBIm,R/M ;錯(cuò)誤,立即數(shù)Im不能作被減數(shù)
NEGR/M ;正確,將減法化成加法
ADDR/M,Im 2023/1/14分析2-1=1在計(jì)算機(jī)內(nèi)的運(yùn)算原理(假設(shè)機(jī)器字長為8位)使用補(bǔ)碼:2-1=2+(-1)(即將符號(hào)位交給1使1變成-1)
-1的原碼:1000,0001
按位取反:1111,1110(注意:最高位即符號(hào)位不參與取反運(yùn)算)
-1的補(bǔ)碼:1111,1111
2
:
0000,0010補(bǔ)碼
+
-1:1111,1111補(bǔ)碼
______________________
1,0000,0001補(bǔ)碼->最高位溢出丟棄->0000,0001補(bǔ)碼/原碼
->(1)D2023/1/14分析2-1=1在計(jì)算機(jī)內(nèi)的運(yùn)算原理(假設(shè)機(jī)器字長為8位)求補(bǔ)運(yùn)算:2-1=2+(1的相反數(shù))(即減去1等于加上1的相反數(shù))
1的原碼:0000,0001
各位取反:1111,1110
末位加1
:1111,1111(即為-1的補(bǔ)碼,也就是1相反數(shù)的補(bǔ)碼)
2
:
0000,0010補(bǔ)碼
+
-1:1111,1111補(bǔ)碼
______________________
1,0000,0001補(bǔ)碼->最高位溢出丟棄->0000,0001補(bǔ)碼/原碼
->(1)D2023/1/14算術(shù)運(yùn)算——減法類指令CMP——比較指令
指令格式
指令功能指令操作數(shù)
指令應(yīng)用
CMPdest,src;dest–src
CMP指令與SUB指令的相同點(diǎn):完成目的操作數(shù)dest
減源操作數(shù)srcCMP指令與SUB指令的不同點(diǎn):
SUB的差放入dest、CMP的差僅影響標(biāo)志CMPreg,imm、CMPreg,reg、CMPreg,memCMP用于條件判斷指令前,根據(jù)標(biāo)志改變程序流程2023/1/14算術(shù)運(yùn)算——減法類指令討論CMPAL,BL
若(AL)=(BL)
差為0標(biāo)志位ZF=1
兩數(shù)相等條件判斷指令為JE(Equal)
兩數(shù)差為0條件判斷指令為JZ(Zero)
若(AL)≠(BL)
差不為0標(biāo)志位ZF=0
兩數(shù)不相等條件判斷指令為JNE
兩數(shù)差不為0條件判斷指令為JNZ2023/1/14算術(shù)運(yùn)算——減法類指令討論CMPAL,BL
(AL、BL均為無符號(hào)數(shù))
若(AL)>(BL)
無借位標(biāo)志位CF=0(AL)高于(BL)用條件判斷指令為JA(Above)
(AL)不低于(BL)用條件判斷指令為JNB
若(AL)<(BL)
有借位標(biāo)志位CF=1(AL)低于(BL)用條件判斷指令為JB(Below)
(AL)不高于(BL)用條件判斷指令為JNA2023/1/14算術(shù)運(yùn)算——減法類指令討論CMPAL,BL
(AL、BL均為有符號(hào)數(shù))對(duì)于帶符號(hào)數(shù)A、B,當(dāng)OF=0(無溢出),則SF=0A>B;SF=1A<B;當(dāng)OF=1(溢出),則SF=0A<B;SF=1A>B。為什么?對(duì)于帶符號(hào)數(shù),最高位是符號(hào)位。若A>B,則A-B不需要借位。若A<B,則要向最高位(符號(hào)位)借位,剛好使符號(hào)位取反,故判斷A、B大小時(shí)要先判斷結(jié)果是否有溢出,不能僅看SF。同號(hào)想減不會(huì)溢出。異號(hào)相減相當(dāng)于同號(hào)相加,正正相加表現(xiàn)為負(fù),負(fù)負(fù)相加表現(xiàn)為正,標(biāo)志著溢出2023/1/14算術(shù)運(yùn)算——減法類指令討論CMPAL,BL
(AL、BL均為有符號(hào)數(shù))
若(AL)>(BL)
標(biāo)志位SF⊕OF=0(AL)大于(BL)用條件判斷指令為JG(Greater)
(AL)不小于(BL)用條件判斷指令為JNL
若(AL)<(BL)
標(biāo)志位SF⊕OF=1(AL)小于(BL)用條件判斷指令為JL(Less)
(AL)不大于(BL)用條件判斷指令為JNG2023/1/14算術(shù)運(yùn)算——減法類指令與CMP指令有關(guān)的條件判斷指令
無符號(hào)、有符號(hào)數(shù)判零指令
JZ/JE、JNZ/JNE與標(biāo)志位ZF有關(guān)
無符號(hào)數(shù)比較大小指令
JA/JNB、JB/JNA與標(biāo)志位CF有關(guān)
有符號(hào)數(shù)比較大小指令
JG/JNL、JL/JNG與標(biāo)志位OF、SF有關(guān)2023/1/14算術(shù)運(yùn)算類指令加法指令
減法指令
乘法指令
除法指令
ADD,ADC指令、INC指令、DAA,AAA指令SUB,SBB指令、DEC指令、DAS,AAS指令NEG指令、CMP指令MUL,IMUL指令、AAM指令DIV,IDIV指令、AAD指令2023/1/14算術(shù)運(yùn)算——乘法類指令乘、除法指令與加、減法指令的比較
對(duì)加、減法無符號(hào)、有符號(hào)數(shù)運(yùn)算用相同的指令
對(duì)乘、除法無符號(hào)、有符號(hào)數(shù)運(yùn)算用不同的指令
對(duì)加、減法寄存器使用不固定
對(duì)乘、除法寄存器使用為專用寄存器2023/1/14算術(shù)運(yùn)算——乘法類指令乘法指令中的專用寄存器
寄存器的使用原則
積、被乘數(shù)、乘數(shù)的數(shù)據(jù)類型
被乘數(shù)專用寄存器AL(8位)或AX(16位)積專用寄存器AX(16位)或DX,AX(32位)積(16位)=被乘數(shù)(8位)*乘數(shù)(8位)積(32位)=被乘數(shù)(16位)*乘數(shù)(16位)2023/1/14算術(shù)運(yùn)算——乘法類指令MUL——無符號(hào)數(shù)乘法指令
指令格式
指令特點(diǎn)
MULsrc
;(AX)←(AL)*src(8位乘數(shù));(DX):(AX)←(AX)*src(16位乘數(shù))
MUL指令僅顯示給出乘數(shù)源操作數(shù)srcMUL指令目的操作數(shù)根據(jù)src的數(shù)據(jù)類型而定若src為8位乘數(shù),則
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年秋冬皮草加工合同版B版
- 2024年購物中心停車位購置合同協(xié)議書3篇
- 2024年度地下車位買賣合同(產(chǎn)業(yè)園區(qū))6篇
- 2025版高檔住宅購置意向金協(xié)議3篇
- 2025版鋼琴藝術(shù)教育課程研發(fā)與推廣合同3篇
- 2024版保管的合同
- 2025年度洗滌房租賃及清潔行業(yè)信息化建設(shè)合同3篇
- 2025年抄紙助劑項(xiàng)目發(fā)展計(jì)劃
- 2024政府招標(biāo)校園營養(yǎng)午餐供應(yīng)合同版B版
- 2024新能源汽車生產(chǎn)銷售合作框架合同
- 初二期末班主任學(xué)生評(píng)語
- YY/T 0338.1-2002氣管切開插管 第1部分:成人用插管及接頭
- GB/T 32491-2016玻璃纖維增強(qiáng)熱固性樹脂管及管件長期靜水壓試驗(yàn)方法
- 書名號(hào)測試的文檔
- 交大醫(yī)學(xué)院研究生現(xiàn)代免疫學(xué)基礎(chǔ)和進(jìn)展《免疫學(xué)原理》考試重點(diǎn)
- 全文解讀改革開放簡史專題解讀
- 熱電廠工程燃煤系統(tǒng)施工方案
- 福建省南平市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 金融科技課件(完整版)
- 中國建筑史經(jīng)典題型
- 計(jì)算機(jī)信息系統(tǒng)分級(jí)保護(hù)方案
評(píng)論
0/150
提交評(píng)論