版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章Intel8086/8088指令系統(tǒng)4.1指令格式與尋址方式4.28086/8088的指令系統(tǒng)4.3匯編語(yǔ)言程序格式4.4匯編語(yǔ)言程序設(shè)計(jì)4.5匯編語(yǔ)言程序使用示例4.1指令格式及尋址方式4.1.18086/8088的通用指令格式機(jī)器語(yǔ)言指令是由二進(jìn)制代碼組成的。一條指令是由操作碼與操作數(shù)字段構(gòu)成的,其一般格式為操作碼字段+操作數(shù)字段操作碼字段指明計(jì)算機(jī)所要執(zhí)行的操作(即功能);操作數(shù)字段指出在指令執(zhí)行過(guò)程中所需要的操作數(shù)。例如:ADDAX,BX
其中ADD是操作碼助記符,指明做加法運(yùn)算;AX和BX是操作數(shù)助記符,指出被加數(shù)和加數(shù),AX還存放相加后的結(jié)果(原來(lái)的被加數(shù)被沖掉)。對(duì)有操作數(shù)的指令,在執(zhí)行指令所規(guī)定的操作之前首先要尋找操作數(shù)。操作數(shù)可放在CPU寄存器中,或內(nèi)存單元中,或I/O端口內(nèi),尋找這些操作數(shù)的方式稱為尋址方式,即指令中用于說(shuō)明操作數(shù)或操作數(shù)所在地址的方法。4.1.2立即尋址特點(diǎn):操作數(shù)直接存放在指令中,作為指令的一部分存放在代碼段里,這種操作數(shù)稱為立即數(shù),這種尋址方式稱為立即尋址。立即數(shù)常用于給寄存器或存儲(chǔ)單元賦初值(即初始化),立即數(shù)只能用于源操作數(shù)字段,不能用于目的操作數(shù)字段。例4.1MOVAX,5;(AX)←5 MOVAX,1234H;(AX)←1234HMOV200H,AX;(錯(cuò)誤的,立即數(shù)不能作目的操 作數(shù))5和1234H為立即數(shù),立即數(shù)可以是二進(jìn)制、十進(jìn)制、十六進(jìn)制的。4.1.3寄存器尋址
特點(diǎn):操作數(shù)在某寄存器中,存取這類操作數(shù)在CPU內(nèi)部進(jìn)行,所以執(zhí)行速度快。存放16位操作數(shù)的寄存器有:AX,BX,CX,BP,SP,SI,DI;存放8位操作數(shù)的寄存器有:AH,AL,BH,CH,CL,DH,DL。例4.2已知:(BX)=1234H。執(zhí)行MOVAX,BX;(AX)←(BX)執(zhí)行后:(AX)=1234H,(BX)不變。4.1.4存儲(chǔ)器尋址
操作數(shù)在存儲(chǔ)器中。存儲(chǔ)器是分段管理的,要找到操作數(shù),必須指明操作數(shù)所在的段(段基址由段寄存器指明)及段內(nèi)偏移地址(以有效地址EA的形成方式指出)。
1.直接尋址方式特點(diǎn):指令中直接給出操作數(shù)在段內(nèi)的偏移量,段基址隱含給出或用段前綴指明。該尋址方式適用于處理單個(gè)變量。一般操作數(shù)存放在數(shù)據(jù)段中,故操作數(shù)的物理地址為物理地址=(DS)×16+EA=(段基址的寄存器)×16+偏移地址
例4.3
已知:(DS)=4000H,[1000H]=3355H。執(zhí)行MOVAX,[1000H]執(zhí)行后:(AX)=3355H,物理地址=40000H+1000H=41000H,EA=1000H,尋址過(guò)程如圖4-1所示。圖4-1例4.3直接尋址示意圖
說(shuō)明:(1)偏移地址(EA)在指令中直接給出。指令中缺省段寄存器說(shuō)明,段基址在DS段寄存器中;否則在指令中需對(duì)段寄存器加以說(shuō)明。例如:MOVAX,ES:[2300H]。(2)可用符號(hào)地址代替數(shù)值地址,例如:MOVAX,VALUE;此時(shí),VALUE為存放操作數(shù)單元的符號(hào)地址,即變量名,也可寫(xiě)成:MOVAX,[VALUE],兩者等價(jià)。
2.寄存器間接尋址特點(diǎn):操作數(shù)有效地址在基址寄存器BP、DI中,而操作數(shù)則在存儲(chǔ)器中。它適用于表格處理,執(zhí)行完一條指令后,只需修改寄存器內(nèi)容就可取出表格中的下一項(xiàng)元素。(1)指令中的有效地址(EA)存放在BX,SI,DI寄存器中,則操作數(shù)在數(shù)據(jù)段中,即操作數(shù)的物理地址為物理地址=(DS)×16+(BX)(SI)(DI)
(2)若有效地址存放在BP寄存器中,則操作數(shù)在堆棧段中,即操作數(shù)物理地址為物理地址=(SS)×16+(BP)(3)可使用段跨越前綴來(lái)取得其他段中的數(shù)據(jù),如:
MOVAX,ES:[BX]注意:MOVAX,BX;(AX)←(BX)與上面的MOVAX,[BX]含義不同。
例4.4已知:(DS)=1000H,(BX)=0A00H。執(zhí)行MOVAX,[BX]執(zhí)行后:(AX)=4422H,物理地址=10000H+0A00H=10A00H,如圖4-2所示。圖4-2例4.4寄存器間接尋址示意圖
3.寄存器相對(duì)尋址
特點(diǎn):操作數(shù)的有效地址是一個(gè)基址寄存器或變址寄存器的內(nèi)容和指令中指定的8位或16位位移量(即偏移量)之和。適用于表格處理,修改基址或變址寄存器的內(nèi)容來(lái)取得表格中的元素。一般形式:物理地址=(DS)×16+(BX)(SI)(DI)+8位或16位位移量物理地址=(SS)×16+(BP)+8位或16位位移量
例4.5
已知(DS)=2000H,(SI)=50H,DISP=1000H,其中DISP為16位位移量的符號(hào)地址。執(zhí)行MOVAX,DISP[SI]或MOVAX,[DISP+SI]執(zhí)行后:(AX)=6688H,物理地址=20000H+1000H+50H=21050H,如圖4-3所示。該尋址方式可使用段跨越前綴,例如:MOVDL,ES:STRING[SI]。圖4-3例4.5寄存器相對(duì)尋址示意圖
4.基址變址尋址特點(diǎn):操作數(shù)的有效地址是一個(gè)基址寄存器的內(nèi)容與一個(gè)變址寄存器內(nèi)容之和。物理地址=(DS)×16+(BX)+
(SI)
(DI)物理地址=(SS)×16+(BP)+
(SI)
(DI)適用表格或數(shù)組處理,表格或數(shù)組首地址可存放在基址寄存器中。例4.6已知:(DS)=3000H,(BX)=1100H,(SI)=0050H。執(zhí)行MOVAX,[BX][SI]或MOVAX,[BI+SI]
EA=1100H+0050H=1150H
物理地址=30000H+1150H=31150H執(zhí)行后:(AX)=5678H。
5.相對(duì)基址變址尋址
特點(diǎn):操作數(shù)的有效地址是一個(gè)基址寄存器與一個(gè)變址寄存器的內(nèi)容之和再加上8位或16位位移量。同樣,當(dāng)基址寄存器為BX時(shí),用DS作為段寄存器;而當(dāng)基址寄存器為BP時(shí),則用SS作為段寄存器。因此物理地址為物理地址=(DS)×16+(BX)+
(SI)
(DI)物理地址=(SS)×16+(BP)+
(SI)
(DI)+8位16位位移量+8位16位位移量
例4.7已知(DS)=5000H,(BX)=3000H,(SI)=2000H,BUFF=0350H,(55350H)=6684H。執(zhí)行MOVAX,BUFF[SI][BX]或MOVAX,[BUFF][BX][SI]或MOVAX,[BUFF+SI+BX]物理地址=(DS)×16+(BX)+(SI)+BUFF=50000H+3000+2000+0350=55350H
執(zhí)行后:(AX)=6684H。該尋址方式為堆棧和多重表格處理提供了方便,無(wú)段跨越前綴。4.1.5I/O端口尋址
1.直接端口尋址方式
I/O端口地址以8位立即數(shù)方式在指令中直接給出。例如:INAL,PORT;其中,PORT為尋址端口編號(hào),只能在0~255范圍之內(nèi)。2.間接端口尋址方式
I/O地址超過(guò)8位時(shí),應(yīng)放在DX寄存器中,即通過(guò)DX間接尋址所能尋址的端口編號(hào)為0~65535。如OUTDX,AL,表示將AL的內(nèi)容輸出到由DX指出的端口中去。在16位PC機(jī)中,僅用A9~A010條地址線表示I/O端口,所以DX間接尋址的范圍為0~1023,即0~3FFH。4.28086/8088的指令系統(tǒng)
目前許多計(jì)算機(jī)的指令系統(tǒng)包含了幾百條指令,十幾種尋址方式,這對(duì)豐富匯編語(yǔ)言程序設(shè)計(jì),提高高級(jí)語(yǔ)言的執(zhí)行效率是有利的。我們稱這些計(jì)算機(jī)為“復(fù)雜指令系統(tǒng)計(jì)算機(jī)”,簡(jiǎn)稱CISC(ComplexInstructionSetComputer)?;局噶罴?0X86微機(jī)不斷發(fā)展的指令集的一個(gè)基本子集,包括8086/8088指令系統(tǒng)的全部指令。IBMPC/XT微型計(jì)算機(jī)的微處理器采用的是8088芯片,本節(jié)將介紹8086/8088微處理器的指令系統(tǒng)。指令系統(tǒng)是指處理器所能完成的所有指令的集合,它是微處理器設(shè)計(jì)時(shí)就確定了的。所以,對(duì)于不同的微處理器,其指令系統(tǒng)中所包含的具體指令是各不相同的。由于微處理器8088與8086的指令系統(tǒng)是完全一樣的,所以,本節(jié)介紹的指令系統(tǒng)同樣適用于8086CPU。8086/8088CPU指令系統(tǒng)可以分成下列幾類:(1)數(shù)據(jù)傳送指令;(2)算術(shù)運(yùn)算指令;(3)邏輯運(yùn)算和移位指令;(4)轉(zhuǎn)移和循環(huán)控制指令;(5)調(diào)用和返回指令;(6)字符串操作指令;(7)處理器控制指令。
為了便于了解指令的形式和功能,對(duì)指令中的操作數(shù)符號(hào)的約定如下:
OPR:操作數(shù);
DST:在多操作數(shù)指令中,表示目標(biāo)操作數(shù);
SRC:在多操作數(shù)指令中,表示源操作數(shù);
SEG:段寄存器;
REG:通用寄存器;
MEM:8位或16位存儲(chǔ)器;
DATA:8位或16位立即數(shù)。4.2.1數(shù)據(jù)傳送指令數(shù)據(jù)傳送類指令是計(jì)算機(jī)中最基本、最常用、最重要的一類指令。這里討論的數(shù)據(jù)傳送指令僅指CPU中的寄存器與寄存器或者寄存器與存儲(chǔ)器之間的數(shù)據(jù)傳送指令。這類指令的基本格式及功能說(shuō)明見(jiàn)表4-1。表中除了SAHF和POPF指令之外,其余指令對(duì)標(biāo)志位寄存器F的各位均不影響。指令中出現(xiàn)兩個(gè)操作數(shù)時(shí),目的操作數(shù)在前,源操作數(shù)在后,并且目的操作數(shù)的尋址方式一定不能為立即數(shù)和段寄存器CS。表4-1數(shù)據(jù)傳送類指令的格式和功能
1.通用數(shù)據(jù)傳送指令
(1)MOV指令。格式:MOVDST,SRC
操作:(DST)←SRC),即把源操作數(shù)的內(nèi)容送目的操作數(shù)。其中DST代表目的操作數(shù),SRC代表源操作數(shù)。說(shuō)明:·MOV指令不允許兩個(gè)存儲(chǔ)器單元傳送數(shù)據(jù),即DST和SRC不能同時(shí)為存儲(chǔ)器操作數(shù),DST目的操作數(shù)不允許使用立即尋址方式。
·MOV指令也不允許在兩個(gè)段寄存器之間傳送數(shù)據(jù)。
·CS不能作目的操作數(shù)。
·對(duì)標(biāo)志位無(wú)影響。(2)交換指令。格式:XCHGOPR1,OPR2
操作:OPR1OPR2,即將操作數(shù)(OPR1)與操作數(shù)(OPR2)進(jìn)行交換。說(shuō)明:該指令在使用過(guò)程需要注意的幾點(diǎn)與MOV指令說(shuō)明相同。一條交換指令完成的功能相當(dāng)于三條MOV指令完成的功能。XGHGAX,BX相當(dāng)于MOVCX,AXMOVAX,BXMOVBX,CX(3)壓入堆棧指令。格式:PUSHSRC
操作:(SP)←(SP)-2,((SP)+1),(SP)←SRC,即SP指針先減2,后按字入棧。注意:堆棧的存取必須以字為單位。堆棧是按“后進(jìn)先出”的方式工作的一個(gè)存儲(chǔ)區(qū),只有一個(gè)出入口,用一個(gè)堆棧指針寄存器SP來(lái)指示進(jìn)出棧操作。SP的工作內(nèi)容在任何時(shí)候都指向當(dāng)前的棧頂,源操作數(shù)SRC除了立即尋址之外的其他存儲(chǔ)器操作數(shù)尋址方式均可使用。(4)出棧指令。格式:POPDST
操作:(DST)←((SP)+1,(SP)),(SP)←(SP)+2,即先出棧,后指針加2,按字取出。目標(biāo)操作數(shù)DST的尋址方式為除了立即尋址方式之外的所有存儲(chǔ)器操作數(shù)尋址方式和寄存器尋址方式。(5)有效地址送寄存器指令。該指令把存儲(chǔ)器操作數(shù)的有效地址送到指定的寄存器中。格式:LEAREG,SRC
操作:(REG)←SRC,即把源操作數(shù)(SRC應(yīng)是存儲(chǔ)器操作數(shù))的有效地址送到指定的寄存器(REG)中。例如:LEADX,[BX+SI+0B62H]執(zhí)行前:(BX)=3000H,(SI)=0050H
執(zhí)行后:(DX)=3000H+0050H+0B62H=3BA2H(有效地址或偏移地址)注意:這里DX寄存器得到的是偏移地址而不是該存儲(chǔ)單元的內(nèi)容。例如:(SI)=0500H,(BX)=1000H,(DS)=2000HDS:0500H單元存放3412HDS:1000H單元存放00AAHMOVAX,[SI];(AX)←[SI],(AX)=1234HLEAAX,[SI];(AX)←EA,(AX)=0500HMOVDI,[BX];(DI)←[BX],(DI)=AA00HLEADI,[BX];(DI)←[BX],[DI]=1000H(6)指針?biāo)图拇嫫骱虳S指令。格式:LDSREG,SRC
操作:(REG)(SRC),(DS)←(SRC+2),即把源操作數(shù)指定的4個(gè)相繼字節(jié)的內(nèi)容作為一個(gè)地址指針?biāo)偷接芍噶钪付ǖ募拇嫫骱虳S寄存器。REG為16位寄存器名。例如:(DS)=9000H,(90012H)=0150H,(90014H)=4000H
執(zhí)行LDSSI,[12H]源操作數(shù)物理地址=9000H×16+0012H=90012H,即將90012H開(kāi)始的4個(gè)單元的內(nèi)容送到SI和DS中。執(zhí)行后:(SI)=0105H,(DS)=4000H,如圖4-4所示。(7)指針?biāo)图拇嫫骱虴S指令。格式:LESREG,SRC
操作:(REG)←(SRC)(ES)←(SRC+2)把源操作數(shù)指定的4個(gè)相繼字節(jié)的內(nèi)容作為一個(gè)地址指針?biāo)偷接芍噶钪付ǖ募拇嫫鱎EG和ES中。
例如,執(zhí)行前:(DS)=0A000H,(BX)=0800H,(0A0800H)=0230H,(0A0802H)=2000H。執(zhí)行LESDI,[BX]執(zhí)行后:(DI)=0230H,(ES)=2000H;
0A000H:0800H字單元存放的內(nèi)容為3002H;
0A000H:0802H字單元存放的內(nèi)容為0020H。(8)累加器專用傳送指令。①輸入指令。格式Ⅰ:INAL,PORT;字節(jié)輸入
INAX,PORT;字輸入操作:(AL)←(PORT),(AX)←(PORT),從外設(shè)讀入數(shù)據(jù)。格式Ⅱ:INAL,DX;字節(jié)輸入
INAX,DX;字輸入操作:(AL)←[(DX)](字節(jié)),(AX)←(DX)+1,(DX)](字)②輸出指令。格式Ⅰ:OUTPORT,AL;字節(jié)輸出
OUTPORT,AX;字輸出操作:[PORT]←(AL)(字節(jié)),[PORT+1,PORT]←(AX)(字),將數(shù)據(jù)傳送給外設(shè)。格式Ⅱ:OUTDX,AL;字節(jié)輸出
OUTDX,AX;字輸出操作:[(DX)]←(AL)(字節(jié)),[(DX)+1,(DX)]←(AX)(字)IN/OUT指令有兩種格式,選擇哪一種,取決于外部設(shè)備端口地址的寬度。格式Ⅰ指令有兩個(gè)字節(jié),稱長(zhǎng)格式;格式Ⅱ只有一個(gè)字節(jié),稱短格式。例如:下面六條指令先將外設(shè)端口16H的內(nèi)容(16位)傳送到存儲(chǔ)單元MEMWORD中;再?gòu)耐庠O(shè)端口04ABH送一個(gè)字到AX中;最后將AX輸出到端口地址為0123H的外設(shè)上。INAX,16HMOVMEM-WORD,AXMOVDX,04ABHINAX,DXMOVDX,0123HOUTDX,AX③XLAT換碼指令。格式:XLATOPR或XLAT
操作:(AL)←[(BX)+(AL)],將AL中的當(dāng)前內(nèi)容轉(zhuǎn)換為某一種代碼。在使用這條指令前,先建立一個(gè)字節(jié)表格,OPR為表格首地址,應(yīng)存入BX寄存器中,待轉(zhuǎn)換的代碼應(yīng)放在AL寄存器中,該代碼是相對(duì)于表格首地址的位移量,再根據(jù)(BX)+(AL)所求得的地址讀取所要的代碼,并存入AL中。該指令常用于查表,根據(jù)元素在表格中的位置查表求元素的值。
例4.8
在當(dāng)前數(shù)據(jù)段中,從TABLE存儲(chǔ)單元開(kāi)始連續(xù)存放了0~9的ASCII碼,在程序中將BX寄存器賦值為T(mén)ABLE,等待轉(zhuǎn)換數(shù)字符0~9放在AL中,執(zhí)行如下程序段,即可查得AL中字符的ASCII碼,如圖4-5所示。LEABX,TABLE;BX←TABLMOVAL,6 ;AL←6XLATTABLE;AL←36H圖4-5XLAT指令操作示意圖
2.標(biāo)志傳送指令
(1)LAHF指令。格式:LAHF
操作:(AH)←(PSW的低字節(jié)),即標(biāo)志寄存器的低字節(jié)傳送到AH寄存器中。
(2)SAHF指令。格式:SAHF
操作:(PSW的低字節(jié))←(AH),即將AH寄存器的內(nèi)容傳送到標(biāo)志寄存器的低字節(jié)中。該指令影響狀態(tài)標(biāo)志SF、ZF、AF、PF和CF。(3)PUSHF指令。格式:PUSHF
操作:(SP)←(SP)-2,[(SP)+1,(SP)]←(PSW),標(biāo)志寄存器的內(nèi)容入棧。
(4)POPF指令。格式:POPF
操作:(PSW)←[(SP)+1,(SP)],(SP)←(SP)+2,標(biāo)志寄存器的內(nèi)容出棧。該指令影響標(biāo)志寄存器的所有標(biāo)志位。數(shù)據(jù)傳送指令除了SAHF和POPF兩條外,執(zhí)行結(jié)果都不影響標(biāo)志位。4.2.2算術(shù)運(yùn)算指令圖4-6加、減運(yùn)算的操作數(shù)1.加法指令
(1)ADD加法指令。格式:ADDDST,SRC
操作:(DST)←(DST)+(SRC),完成兩個(gè)操作數(shù)相加,結(jié)果傳送到目的操作數(shù)中。說(shuō)明:
·ADD不允許兩個(gè)存儲(chǔ)器單元內(nèi)容相加,即DST和SRC不能同時(shí)為存儲(chǔ)器操作數(shù),DST目的操作數(shù)不允許使用立即尋址方式。
·ADD指令也不允許在兩個(gè)段寄存器之間相加。
·對(duì)標(biāo)志位有影響,主要是CF、ZF、OF、SF標(biāo)志位。(2)ADC帶進(jìn)位加法指令。格式:ADCDST,SRC
操作:(DST)←(DST)+(SRC)+(CF),即完成兩個(gè)操作數(shù)及進(jìn)位(CF)三者相加,結(jié)果傳送到目的操作數(shù)中。說(shuō)明:與ADD指令說(shuō)明相同。
例4.9
已知(DX)=0002H,(AX)=0E365H,(BX)=0003H,(CX)=0D024H。執(zhí)行ADDAX,CXADCDX,BX
第一條指令執(zhí)行后,(AX)=0B389H,SF=1,ZF=0,CF=1,OF=0;第二條指令執(zhí)行后,(DX)=0006H,SH=0,ZF=0,CF=0,OF=0。(3)INC加1指令。格式:INCDST
操作:(DST)←(DST)+1,即操作數(shù)加1。說(shuō)明:DST單操作數(shù)不允許使用立即尋址方式。除了CF標(biāo)志位之外,對(duì)其他標(biāo)志位均有影響。
2.減法指令
(1)SUB減法指令。格式:SUBDST,SRC
操作:(DST)←(DST)-(SRC),目的操作數(shù)與源操作數(shù)相減,差值傳達(dá)到目的操作數(shù)中。說(shuō)明:
·SUB指令不允許兩個(gè)存儲(chǔ)器單元內(nèi)容相減,即DST和SRC不能同時(shí)為存儲(chǔ)器操作數(shù),DST目的操作數(shù)不允許使用立即尋址方式。
·SUB指令也不允許在兩個(gè)段寄存器之間相減。
·對(duì)標(biāo)志位有影響,主要是CF、ZF、OF、SF標(biāo)志位。(2)SBB帶借位的減法指令。格式:SBBDST,SRC
操作:(DST)←(DST)-(SRC)-(CF),該指令與SUB的操作基本相同,惟一不同是還需減去借位位(CF)。一般在多字節(jié)相減時(shí),先進(jìn)行低字節(jié)內(nèi)容相減,然后再進(jìn)行高字節(jié)內(nèi)容相減,這時(shí)需減去低字節(jié)所產(chǎn)生的借位。說(shuō)明:與SUB指令說(shuō)明相同。(3)DEC減1指令。格式:DECDST
操作:(DST)←(DST)-1。說(shuō)明:DST單操作數(shù)不允許使用立即尋址方式。除了CF標(biāo)志位之外,對(duì)其他標(biāo)志位均有影響。
(4)NEG求補(bǔ)指令。格式:NEGDST
操作:(DST)←(DST)+1,把操作數(shù)按位求反并在最末位加1。說(shuō)明:與DEC指令說(shuō)明相同。(5)CMP比較指令。格式:CMPOPR1,OPR2
操作:(OPR1)-(OPR2),該指令與SUB指令一樣,執(zhí)行減法操作,但它并不保存結(jié)果,只是根據(jù)結(jié)果設(shè)置狀態(tài)標(biāo)志位,用于分支程序。
說(shuō)明:
·
若OPR1與OPR2為無(wú)符號(hào)數(shù),OPR1≥OPR2,則CF=0,OF=0;OPR1<OPR2,則CF=1,OF=0。
·
若OPR1、OPR2為有符號(hào)數(shù),OPR1與OPR2符號(hào)相同則OF=0,根據(jù)SF判其大小。
·
若OPR1、OPR2為有符號(hào)數(shù),執(zhí)行OPR1-OPR2后,SF=0并且OF=0,或者SF=1并且OF=1,即SFOF=0,則OPR1≥OPR2;若SF=0并且OF=1(負(fù)數(shù)減正數(shù),溢出),或者SF=1并且OF=0(負(fù)數(shù)減正數(shù),未溢出),即SFOF=1,則OPR1<OPR2。+
3.乘法指令
(1)MUL無(wú)符號(hào)乘法指令。格式:MULSRC
操作:字節(jié)操作數(shù):AX)←(AL)×SRC;字操作數(shù):(DX,AX)←(AX)×SRC。該指令要求被乘數(shù)必須存放在AL或AX中,乘數(shù)必須存放在寄存器或存儲(chǔ)器單元中,不能是立即數(shù)。乘積存放在AX或DX、AX中。
說(shuō)明:
·
通用寄存器中存放乘數(shù):MULREG。
MULSI;(DX)(AX)←(AX)×(SI)
MULDH;(AX)←(AL)×(DH)
·
存儲(chǔ)單元存放乘數(shù):MULMEM。
MUL[SI];(AX)←(AL)×[SI]
MUL[BUFFER];(DX)(AX)←(AX)×[BUFFER](2)IMUL帶符號(hào)數(shù)乘法指令。格式:IMULSRC
操作:字節(jié)操作數(shù):(AX)←(AL)×SRC;字操作數(shù):(DX,AX)←(AX)×SRC。該指令與MUL指令字操作一樣,僅操作數(shù)為有符號(hào)數(shù)。說(shuō)明與MUL相同。4.除法指令
(1)DIV無(wú)符號(hào)數(shù)除法指令。格式:DIVSRC操作:16位被除數(shù),除數(shù)為8位:(AX)/SRC→(AL)(商)(AX)/SRC→(AH)(余數(shù))32位被除數(shù),除數(shù)為16位:(DX)(AX)/SRC→(AX)(商)(DX)(AX)/SRC→(DX)(余數(shù))(2)IDIV帶符號(hào)數(shù)除法指令。格式:IDIVSRC
操作:帶符號(hào)數(shù)16位被除數(shù),帶符號(hào)數(shù)除數(shù)為8位:(AX)/SRC→(AL)(商)(AX)/SRC→(AH)(余數(shù))帶符號(hào)數(shù)32位被除數(shù),帶符號(hào)數(shù)除數(shù)16位:(DX)(AX)/SRC→(AX)(商)(DX)(AX)/SRC→(DX)(余數(shù))說(shuō)明:·
通用寄存器中存放除數(shù):DIVREG。
DIVBL;商(AL)←(AX)/(BL),余數(shù)(AH)←(AX)/(BL)
DIVCX;商(AX)←(DX)(AX)/(CX),余數(shù)(DX)←(DX)(AX)/(CX)·
存儲(chǔ)器中存放數(shù):DIVMEM。
DIV[2000H];商(AL)←(AX)/[2000H],余數(shù)(AH)←(AX)/[2000H]DIVDATA[SI];商(AX)←(DX)(AX)/[DATA+(SI)],余數(shù)(DX)←(DX)(AX)/[DATA+(SI)](3)CBW字節(jié)轉(zhuǎn)換為字指令。格式:CBW
操作:將AL中的字節(jié)數(shù)值按其符號(hào)擴(kuò)展到AH中,成為一個(gè)16位數(shù)。例如:(AL)=0D5H,
CBW指令執(zhí)行后:(AX)=0FFD5H。
(4)CWD字轉(zhuǎn)換為雙字指令。格式:CWD
操作:AX的內(nèi)容按符號(hào)擴(kuò)展到DX。如(AX)的最高有效位為0,則(DX)=0000;如(AX)的最高有效位為1,則(DX)=0FFFFH。
例4.10(算術(shù)運(yùn)算綜合舉例)計(jì)算(V-(X×Y+Z-540))/X,其中X、Y、Z、V均為16位帶符號(hào)數(shù),已分別裝入X、Y、Z、V單元中,要求上式計(jì)算結(jié)果的商存入AX寄存器,余數(shù)存入DX寄存器。編制程序如下:
…
MOVAX,X;被乘數(shù)X傳送到(AX)
IMULY ;(DX)(AX)←X×YMOVCX,AX;將低位積存放到(CX)中
MOVBX,DX;將高位積存放到(BX)中
MOVAX,Z;存放到(AX)中
CWD;擴(kuò)展Z,將字變?yōu)殡p字(DXAX)ADDCX,AX;低位積+低位ZADCBX,DX;高位積+高位Z帶進(jìn)位
SUBCX,540;低位相減(CX)←X*Y+Z-540SBBBX,0;高位相減(BX)←(BX)-0-CFMOVAX,V;(AX)←VCWD;擴(kuò)展V將字變?yōu)殡p字(DXAX)
SUBAX,CX;(AX)←(V-(X*Y+Z-540)),低16位相減
SBBDX,BX;(DX)←(V-(X*Y+Z-540)),高16位相減帶進(jìn)位
IDIVX;(V-(X*Y+Z-540))/X
5.十進(jìn)制調(diào)整指令
加、減、乘法十進(jìn)制調(diào)整指令的實(shí)質(zhì)是對(duì)二進(jìn)制形式的運(yùn)算結(jié)果進(jìn)行修正,從而得到以BCD碼表示的十進(jìn)制數(shù)的形式;除法的十進(jìn)制調(diào)整指令則是將兩位的非壓縮十進(jìn)制被除數(shù)調(diào)整成二進(jìn)制數(shù),以便得到正確的商和余數(shù)(一位十進(jìn)制數(shù),與二進(jìn)制數(shù)的結(jié)果一樣)。其目的是配合二進(jìn)制運(yùn)算指令,實(shí)現(xiàn)用BCD碼表示的十進(jìn)制數(shù)的運(yùn)算。(1)DAA加法十進(jìn)制調(diào)整指令。格式:DAA
操作:把AL中的和調(diào)整為壓縮的BCD碼。若(AL∧0FH)>9或AF=1,則AL←(AL)+6,AF←1;若(AL)>9FH或CF=1,則AL←(AL)+60H,CF←1。說(shuō)明:該指令在ADD或ADC指令后使用,而且和一定放在AL寄存器中。例如:已知:(AL)=38H,(BL)=48H,為壓縮BCD碼格式,執(zhí)行下面指令后(AL)=?
執(zhí)行ADDAL,BLDAA
執(zhí)行ADD后:(AL)=80H,CF=0,AF=1;執(zhí)行DAA時(shí):由于AF=1,所以(AL)←(AL)+06。經(jīng)過(guò)DAA指令調(diào)整后得到了以壓縮的BCD碼表示的十進(jìn)制數(shù):(AL)=86H。(2)DAS減法十進(jìn)制調(diào)整指令。格式:DAS
操作:把AL中的差調(diào)整為壓縮的BCD碼格式。若(AL∧0FH)>9或AF=1,則AL←(AL)-6,AF←1;若(AL)>9FH或CF=1,則AL←(AL)-60H,CF←1。
說(shuō)明:該指令在SUB或SBB指令后使用,并且差一定在AL寄存器中。例如:(AL)=85H,(AH)=07H。執(zhí)行SUBAL,AHDAS
執(zhí)行SUB指令后,(AL)=7EH,CF=0,AF=1;執(zhí)行DAS指令時(shí),因AF=1,需做:(AL)=(AL)-06=78H。最后,(AL)=78H,CF=0,AF=1,調(diào)整結(jié)果正確。(3)AAA加法ASCII調(diào)整指令。格式:AAA
操作:將AL中的兩個(gè)非壓縮BCD碼之和調(diào)整為非壓縮BCD碼,結(jié)果送AX。若(AX∧0FH)>9或(AF)=1,則AL←(AL)+6,AH←(AH)+1,AF←1,CF←AF;否則AL←(AL)∧0FH,AF←0,(CF)←AF。說(shuō)明:在ADD或ADC指令之后使用,并且結(jié)果在AL中。例如:(AX)=0008H,(BL)=06H。執(zhí)行:ADDAL,BLAAA
調(diào)前,(AL)=0EH;調(diào)整后,(AX)=0104H。(4)AAS減法ASCII調(diào)整指令。格式:AAS
操作:將AL中的兩個(gè)非壓縮BCD碼的差調(diào)整成非壓縮BCD碼,結(jié)果送AX。若(AL∧0FH)>9或(AF)=1,則AL←(AL)-6,AH←(AH)-1,AF←1,CF←AF;否則AL←(AL)∧0FH,AF←0,(AF)←CF。例如:0406H、0907H非壓縮BDC碼分別存放在變量V1和V2中,求V1-V2的結(jié)果。MOVAX,0MOVAL,BYTEPTR[V1]SUBAL,BYTEPTR[V2];低位相減AAS ;調(diào)整MOVDL,AL ;(DL)送低位結(jié)果MOVAL,BYETPTR[V1+1]SBBAL,BYTEPTR[V2+1];高位相減AAS ;調(diào)整MOVDH,AL ;(DH)送高位結(jié)果(5)AAM非壓縮BCD碼乘法調(diào)整指令。格式:AAM
操作:將AL中兩個(gè)非壓縮BCD碼之積調(diào)整成非壓縮BCD碼,結(jié)果送AX。即:(AH)←(AL)/0AH(商),(AL)←(AL)/0AH(余數(shù))。
說(shuō)明:應(yīng)在MUL指令之后使用,并且乘積一定在AL中。例如:
MOVAH,08H;取被乘數(shù)
MOVCL,08H;取乘數(shù)
MULCL;非壓縮BCD碼乘
AAM;調(diào)整
AX中的積為40H,調(diào)整后,(AH)=6,(AL)=4。(6)AAD非壓縮BCD碼除法調(diào)整指令。格式:AAD
操作:在除法運(yùn)算前,必須用AAD指令把AX中非壓縮BCD碼被除數(shù)調(diào)整為二進(jìn)制數(shù),即執(zhí)行下面的操作:(AL)←10×(AH)+AL,(AH)←0。說(shuō)明:該指令一定出現(xiàn)在DIV指令之前,影響SF、ZF和PF標(biāo)志位。例如:
MOVAX,0408H;被除數(shù)為非壓縮十進(jìn)制數(shù)48MOVBL,4;除數(shù)
AAD;調(diào)整,(AX)=48=30HDIVBL;除運(yùn)算,(AL)=12,(AH)=04.2.3邏輯指令和移位指令
1.邏輯指令
(1)AND邏輯“與”指令。格式:ANDDST,SRC
操作:(DST)←(DST)∧(SRC),對(duì)兩個(gè)操作數(shù)按位作“與”運(yùn)算。例如:要使(AL)中D5和D1兩位為零,用AND指令來(lái)完成,所需設(shè)置源操作數(shù)的立即數(shù)為0DDH,即11011101B。執(zhí)行MOVAL,0EFH;(AL)←0EFHANDAL,0DDH;(AL)←(AL)∧0DDH分析:11101111EFH∧11011101DDH11001101CDH
只要將源操作數(shù)的立即數(shù)字段的相應(yīng)位設(shè)為0就可達(dá)到目的,其余位均為1。(2)OR邏輯“或”指令格式:ORDST,SRC
操作:(DST)←(DST)∨(SRC)例如:要使(AL)中D3置1,用OR指令來(lái)完成,所設(shè)置的源操作數(shù)的立即數(shù)為00001000B。執(zhí)行MOVAL,36HORAL,08H分析:00110110∨0000100000111110只要將源操作數(shù)(立即數(shù))字段的相應(yīng)位置1,其余位均為零。(3)NOT邏輯“非”指令。格式:NOTOPR操作:(OPR)←(OPR)(4)XOR“異或”指令。格式:XORDST,SRC
操作:(DST)←(DST)(SRC)例如:要使(AL)中D3,D6位變反,用XOR指令來(lái)完成。執(zhí)行MOVAL,8AHXORAL,48H
分析:100010100100100011000010;
要維持某位不變與“0”相“異或”;要使某位取反與“1”相“異或”結(jié)果為零。++(5)TEST測(cè)試指令。格式:TESTOPR1,OPR2
操作:(OPR1)∧(OPR2),按位相與,結(jié)果不保存,只根據(jù)其特征置響應(yīng)狀態(tài)標(biāo)志位。說(shuō)明:其中OPR1可以是除立即數(shù)之外的任意一種尋址方式,OPR2可以是任意一種尋址方式,但兩者不可同為存儲(chǔ)器操作數(shù)。
例如:要求測(cè)試(AL)中D7,D4,D2位是否同時(shí)為0,用TEST指令來(lái)完成。執(zhí)行MOVAL,0D4HTESTAL,94H;(AL)∧10010100B
對(duì)應(yīng)要測(cè)試的位將源操作數(shù)中相應(yīng)位設(shè)為“1”,其余位為0,然后用條件轉(zhuǎn)換指令來(lái)判斷ZF位是否為1。若要測(cè)試某些位是否為1,則應(yīng)先將該數(shù)取反,然后用EST指令測(cè)試即可。2.移位指令
(1)邏輯/算術(shù)左移指令。格式:SHL/SALDST,CNT
操作:指令按照CNT指定的移位次數(shù)對(duì)目的操作數(shù)進(jìn)行左移位,移位結(jié)果送DST,最后一次移出的位送CF中。圖4-7為操作示意圖。圖4-7SHL/SAL操作示意圖
說(shuō)明:DST是除立即數(shù)以外的任何尋址方式。CNT是移位次數(shù),CNT只能是1或CL寄存器的值。例如:已知(SI)=1230H。執(zhí)行MOVCL,2SHLSI,CL
執(zhí)行后:(SI)=48C0H,擴(kuò)大了4倍。(2)SAR邏輯右移指令。格式:SHRDST,CNT操作:如圖4-8所示。說(shuō)明:與SHL/SAL指令說(shuō)明相同。
例如:(BH)=42H(十進(jìn)制數(shù)為66D)。執(zhí)行SHRBH,1
執(zhí)行后:(BH)=21H,42H縮小2倍等于66/2=33=21H,這種縮小2倍關(guān)系只對(duì)正數(shù)或無(wú)符號(hào)數(shù)成立。圖4-8SHR操作示意圖(3)SAR算術(shù)右移。格式:SARDST,CNT
操作:最高有效位保持不變同時(shí)右移(稱符號(hào)復(fù)制),如圖4-9所示。說(shuō)明:與SHL/SAL指令說(shuō)明相同。對(duì)于有符號(hào)數(shù),SAR右移一次相當(dāng)于除以2。例如:已知(DS)=8000H,(DI)=4000H,(84000H)=00C8H(十進(jìn)制數(shù)為200)。執(zhí)行MOVCL,5SAR[DI],CL
執(zhí)行后:(84000H)=0006H,00C8H縮小32倍,即200/32圖4-9SAR操作示意圖(4)不帶進(jìn)位的循環(huán)移位指令。格式:ROLDST,CNT;左移
RORDST,CNT;右移操作:如圖4-10所示。說(shuō)明:與SHL/SAL指令說(shuō)明相同。圖4-10循環(huán)移位操作示意圖
例如:已知(AX)=0067H,(BX)=0089H,要求把它們裝配在一起形成(AX)=6789H。程序如下:
MOVCL,8ROLAX,CLADDAX,BX(5)帶進(jìn)位循環(huán)移位指令。格式:RCLDST,CNT;左移
RCRDST,CNT;右移操作:如圖4-11所示。說(shuō)明:與SHL/SAL指令說(shuō)明相同。例如:有一個(gè)4字節(jié)數(shù)存放在DX和AX中,(DX)=0123H,(AX)=0456H,要求該數(shù)的4個(gè)字節(jié)一起左移一位。執(zhí)行SALAX,1RCLDX,1
注意:將AX的D15移到CF,再將CF移到DX的D0,DX的D15最后移到CF中。4.2.4串操作指令
串操作常用于數(shù)據(jù)塊快速移動(dòng)、比較、搜索以及存、取等,使用快捷方便。
1.MOVS串傳送格式:[WB][REP]MOVSB[WB];字節(jié)傳送[REP]MOVSW;字傳送操作:[WB][ES:DI]←[DS:SI],(SI)←(SI)±1,(DI)←(DI)±1,(CX)←(CX)-1;
[ES:DI]←[DS:SI],(SI)←(SI)±2,(DI)←(DI)±2,(CX)←(CX)-1。
說(shuō)明:無(wú)REP前綴時(shí)與MOV指令基本類似,但MOV指令無(wú)自動(dòng)修改地址指針的功能。有REP前綴時(shí)表示將由(DS:SI)指定的源串傳送到由(ES:DI)指定的目的串中,直到計(jì)數(shù)器CX減到0為止。字節(jié)傳送,SI和DI都±1;字傳送,SI和DI都±2;傳送一次,CX減1。
執(zhí)行串指令之前需做如下初始化工作:①設(shè)置方向標(biāo)志DF。若DF=0,則SI和DI增量變化,否則減量變化。②源串偏移量送SI,目的串偏移量送DI。DS指向源串所在的段,ES指向目的串所在的段。③將傳送的長(zhǎng)度裝入CX寄存器中。
串指令中的REP重復(fù)前綴起到了計(jì)數(shù)循環(huán)的作用,其執(zhí)行過(guò)程如下:①判斷(CX)是否等于零,若等于零則結(jié)束串傳送,否則往下執(zhí)行。②(CX)←(CX)-1。③執(zhí)行串傳送指令(MOVSB或MOVSW)。④轉(zhuǎn)到①。
2.LODS讀取串格式:[WB]LODSB;裝入字節(jié)串
LODSW;裝入字串操作:AL←[DS:SI],(SI)←(SI)±1;AX←[DS:SI],(SI)←(SI)±2。說(shuō)明:該指令把[DS:SI]所指定的串裝入累加器,字節(jié)送到AL中,字送到AX中。LODS指令一般不用重復(fù)前綴。
3.STOS存入串格式:[REP]STOSB;字節(jié)存入[REP]STOSW;字存入操作:[ES:DI]←(AL),(DI)←(DI)±1;
[ES:DI]←(AX),(DI)←(DI)±2。說(shuō)明:該指令是將AL或AX寄存器的內(nèi)容存入由(ES:DI)指定的存儲(chǔ)單元中。有REP前綴可對(duì)內(nèi)存某一存儲(chǔ)區(qū)域進(jìn)行初始化(存入相同的數(shù)值)。
4.CMPS串比較格式:[REPZ/REPE]/[REPNZ/REPNE]CMPSB;字節(jié)比較[REPZ/REPE]/[REPNZ/REPNE]CMPSW;字比較操作:[ES:DI]-[DS:SI],(SI)←(SI)±1,(DI)←(DI)±1;
[ES:DI]-[DS:SI],(SI)←(SI)±2,(DI)←(DI)±2。說(shuō)明:該指令表示將由(DS:SI)指定的源串的內(nèi)容與由(ES:SI)指定的目的串的內(nèi)容進(jìn)行比較,比較是通過(guò)減操作完成的。字節(jié)比較,SI和DI都±1;字比較,SI和DI都±2。
串指令中REPZ/REPE前綴起到計(jì)數(shù)循環(huán)和條件循環(huán)雙重作用,執(zhí)行操作過(guò)程如下:①判斷CX或ZF是否等于零,只要有一個(gè)條件為0,則串比較退出,否則往下執(zhí)行。②(CX)←(CX)-1。③執(zhí)行串傳送指令(MOVSB或MOVSW)。④轉(zhuǎn)到①。若前綴是REPNZ/REPNE,表示ZF=1或CX=0時(shí),串比較退出,其余操作與上面一樣。利用REPZ前綴可以查找出兩個(gè)串中第一個(gè)不匹配字符,利用REPNZ可查找出兩個(gè)串中第一個(gè)匹配字符。
5.SCAS串掃描格式:[REPZ/REPE]/[REPNZ/REPNE]SCASB;字節(jié)比較[REPZ/REPE]/[REPNZ/REPNE]SCASW;字比較操作:[ES:DI]-(AL),(DI)←(DI)±1;
[ES:DI]-(AX),(DI)←(DI)±2。
說(shuō)明:SCAS指令是將AL或AX寄存器的內(nèi)容與(ES:DI)指定的串的內(nèi)容依次進(jìn)行比較,每比較一次,DI寄存器自動(dòng)±1或±2,以指向下一個(gè)元素;同時(shí)比較的結(jié)果影響ZF標(biāo)志位,以判斷AL或AX的內(nèi)容是否在串中找到,找到ZF=1,否則ZF=0。前綴REPZ/REPNZ作用與串指令CMPS的前綴相同。利用該指令可以查找到某個(gè)元素是否在指定的串中。上述五條串操作指令中的串地址指針SI、DI寄存器的變化方向,由方向標(biāo)志位DF的當(dāng)前值來(lái)決定,CLD指令使DF=0,為自動(dòng)地址增量;STD指令使DF=1,為自動(dòng)地址減量。總之,串指令的特點(diǎn)是串操作的尋址為隱含寄存器間接尋址,規(guī)定源串的段基址在數(shù)據(jù)段DS寄存器中,起始偏移地址在SI寄存器中;目的串的段基址在附加段ES寄存器中,起始偏移地址在DI寄存器中;執(zhí)行串指令之前必須將它們?cè)O(shè)置好。4.2.5程序控制指令
程序的結(jié)構(gòu)有順序結(jié)構(gòu)也有非順序結(jié)構(gòu),非順序結(jié)構(gòu)的實(shí)現(xiàn)就需要用轉(zhuǎn)移指令或調(diào)用指令。尋址方式從廣義上講,既包括數(shù)據(jù)的尋址,也包括指令的尋址。對(duì)指令來(lái)說(shuō),一指令指針I(yè)P的值作為下一條指令的偏移地址,也就是以IP為指令尋址的依據(jù)(在段的大致CS不變的情況下)。在順序執(zhí)行的情況下,IP的值是自動(dòng)增加的;非順序執(zhí)行的情況下,也就是需要改變程序執(zhí)行流向的情況下,轉(zhuǎn)移指令或調(diào)用指令里就要包括目標(biāo)指令尋址的必要信息,以這些信息為依據(jù),就可以求出新的IP值,從而執(zhí)行轉(zhuǎn)移后的程序段。在有些情況下,代碼地址CS也會(huì)改變,這時(shí)既要求IP值還要求CS值,以形成新的指令地址。
1.轉(zhuǎn)移指令轉(zhuǎn)移指令分無(wú)條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令。(1)無(wú)條件轉(zhuǎn)移指令。格式:JMPTARGET
使程序無(wú)條件地從當(dāng)前位置轉(zhuǎn)移到由“目標(biāo)(TARGET)”標(biāo)號(hào)指定的地址去執(zhí)行,不再返回到當(dāng)前位置。該指令根據(jù)目標(biāo)地址位置與尋址方式有以下四種格式。①段內(nèi)直接轉(zhuǎn)移。格式:JMPNEARPTR<TARGET>JMPSHORT<TARGET>
操作:(IP)←(IP)+16位位移量;(IP)←(IP)+8位位移量。
說(shuō)明:TARGET為轉(zhuǎn)向的有效符號(hào)地址,在匯編后的目的指令中用位移量來(lái)表示。若位移量為16位,則符號(hào)地址前加操作符“NEARPTR”,跳轉(zhuǎn)范圍是以IP執(zhí)行轉(zhuǎn)移指令之前的值為基準(zhǔn),可達(dá)到段內(nèi)的-32768~+32767;若為8位位移量,則在符號(hào)地址前加操作符“SHORT”,段內(nèi)跳轉(zhuǎn)范圍以IP執(zhí)行轉(zhuǎn)移指令之前的值為基準(zhǔn),可達(dá)-128~+127。該指令是相對(duì)轉(zhuǎn)移。例如:JMPSHORTLAB1
LAB1:MOVBX,1234H…②段內(nèi)間接尋址。格式:JMPWORDPTR<TARGET>操作:(IP)←(EA)。說(shuō)明:轉(zhuǎn)向有效地址是一個(gè)通用寄存器或一個(gè)存儲(chǔ)器單元的內(nèi)容。該指令是絕對(duì)轉(zhuǎn)移。
例如:若(DS)=0A000H,(BX)=0056H,TABLE=3200H,(SI)=256H,(0A3256H)=1688H。執(zhí)行JMPSI;(IP)←(SI)=0256HJMPTABLE[BX];(IP)←(0A3256H)=1688HEA=(16D×(DS)+(BX)+TABLE)
=(0A0000H+0056H+3200H)=(0A3256H)=1688H③段間直接轉(zhuǎn)移。指令直接給出了轉(zhuǎn)向的段基址和偏移地址,所以只要用指令中指定的偏移地址取代IP寄存器的內(nèi)容,用指令中指定的段基址取代CS寄存器的內(nèi)容,就完成了從一個(gè)段到另一個(gè)段的轉(zhuǎn)向操作。格式:JMPFARPTR<TARGET>操作:(IP)←TARGET偏移地址,(CS)←TARGET段基址。說(shuō)明:TARGET為轉(zhuǎn)向的符號(hào)地址,F(xiàn)ARPTR是表示段間轉(zhuǎn)移的操作符。④段間間接轉(zhuǎn)移。用存儲(chǔ)器中的兩個(gè)相繼字單元的內(nèi)容來(lái)取代IP和CS寄存器中原先的內(nèi)容,以達(dá)到段間轉(zhuǎn)移的目的。這是絕對(duì)轉(zhuǎn)移。格式:JMPDWORDPTR<TARGET>操作:(IP)←[EA],(CS)←[EA+2]。說(shuō)明:TRAGET只能是存儲(chǔ)器操作數(shù),如:JMPDWORDPTR[LAB2+BX]。其中[LAB2+BX]說(shuō)明數(shù)據(jù)尋址方式;DWORDPTR為雙字操作符,說(shuō)明轉(zhuǎn)向地址需取雙字(一個(gè)字表示偏移量,一個(gè)字表示段基址)。
(2)條件轉(zhuǎn)移指令。條件轉(zhuǎn)移指令有16條,轉(zhuǎn)移的條件是依據(jù)對(duì)除AF之外的五個(gè)狀態(tài)標(biāo)志位的判斷??蓪?duì)一個(gè)標(biāo)志位進(jìn)行判斷
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中地理學(xué)期教學(xué)細(xì)則
- 關(guān)于CSR應(yīng)急預(yù)案(3篇)
- 應(yīng)急預(yù)案的裝訂(3篇)
- 活動(dòng)月方案策劃(3篇)
- 大足美食活動(dòng)策劃方案(3篇)
- 保安應(yīng)急預(yù)案流程(3篇)
- 修復(fù)地坪施工方案(3篇)
- 回填巖石施工方案(3篇)
- 富平廚房施工方案(3篇)
- 商業(yè)綜合體物業(yè)管理投標(biāo)文案
- 供銷合同示范文本
- 《分布式光伏發(fā)電開(kāi)發(fā)建設(shè)管理辦法》問(wèn)答(2025年版)
- 國(guó)家金融監(jiān)督管理總局真題面試題及答案
- 大型商場(chǎng)顧客滿意度調(diào)查報(bào)告
- 落地式腳手架拆除安全專項(xiàng)施工方案
- 2025廣西百色能源投資發(fā)展集團(tuán)有限公司招聘7人(第一批)筆試歷年參考題庫(kù)附帶答案詳解
- 供水管網(wǎng)搶修課件
- 2024年青島黃海學(xué)院公開(kāi)招聘輔導(dǎo)員筆試題含答案
- 醫(yī)院信息科員工考核標(biāo)準(zhǔn)及細(xì)則
- 運(yùn)輸公司安全領(lǐng)導(dǎo)小組會(huì)議記錄內(nèi)容
- 執(zhí)業(yè)獸醫(yī)考試題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論