版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章8086基本結(jié)構(gòu)與指令系統(tǒng)
本章內(nèi)容講授學(xué)時(shí)8
?第2章8086基本結(jié)構(gòu)與指令系統(tǒng)
2.18086微處理器基本結(jié)構(gòu)
2.28086指令格式及尋址方式
?2.38086指令系統(tǒng)
2
本章重點(diǎn)1:
086/8088的特點(diǎn)
CPU的編程結(jié)構(gòu)
分段地址管理
邏輯地址、物理地址
復(fù)位后有關(guān)寄存器的狀態(tài)
標(biāo)志寄存器的含義
總線周期、時(shí)鐘周期
微處理器的性能指標(biāo):
①字長(zhǎng)
②主頻
2.18086微處理器基本結(jié)構(gòu)
2.2.18086微處理器的基本組成及邏輯框圖
8086是16位
微處理器。
*8088是準(zhǔn)16
位微處理器。
外部
總線
從功能上,8086內(nèi)部分為兩部分,即
1.總線接口部件(businterfaceunit,Bill)
2,執(zhí)彳亍部件(executionunit,Ell)
1.執(zhí)行部件EU
執(zhí)行部件負(fù)責(zé)指令的執(zhí)行,由下列4部分組成:
①算術(shù)邏輯部件ALU(arithmeticlogicunit)。
②寄存器組:
4個(gè)通用寄存器,即AX、BX、CX、DX;
4個(gè)專(zhuān)用寄存器,即
基數(shù)指針寄存器BP(basepointer)
堆棧指針寄存器SP(stackpointer)
源變址寄存器SI(sourceindex)
目的變址寄存器DI(destinationindex);
③標(biāo)志寄存器FR;
④執(zhí)行部件控制電路
標(biāo)志寄存器共有16位,其中7位未用,所
用的各位含義如下:
15870
OFDFIFTFSFZFAFPFCF
匚一進(jìn)位標(biāo)志(Carry)
溢出標(biāo)志(Overflow)L-奇偶標(biāo)志(Parity)
方向標(biāo)志(Direction)―*—*半進(jìn)位標(biāo)志(AuxiliaryCarry)
中斷允詐標(biāo)志(h)ierruptenable)一」「零標(biāo)志(Zero)
陷井標(biāo)志(TrapFlag)-JJ符號(hào)標(biāo)志(Sign)
根據(jù)功能,086的標(biāo)志可以分為兩類(lèi):
1.狀態(tài)標(biāo)志
2,控制標(biāo)志
狀態(tài)標(biāo)志有6個(gè),即SF、ZF、PF、CF、
AF和OF
①符號(hào)標(biāo)志SF(signflag)
SF=1,表示本次運(yùn)算結(jié)果的最高位(第7位或第15位)
為“I”,否則SF=0。
②零標(biāo)志ZF(zeroflag)
ZF=1,表示本次運(yùn)算結(jié)果為零,否則即運(yùn)算結(jié)果非
零時(shí),ZF=0o
10
狀態(tài)標(biāo)志有6個(gè),即SF、ZF、PF、CF、
AF和OF
③奇偶標(biāo)志PF(parityflag)
PF=1,表示本次運(yùn)算結(jié)果中有偶數(shù)個(gè)"I",PF=0,
表示本次運(yùn)算結(jié)果中有奇數(shù)個(gè)“1”。
④進(jìn)位標(biāo)志CF(carryflag)
CF=I,表示本次運(yùn)算中最高位(D15或D7)有進(jìn)位(加
法運(yùn)算時(shí))或有借位(減法運(yùn)算時(shí))。CF標(biāo)志可通過(guò)
STC指令置位,通過(guò)CLC指令復(fù)位(清除進(jìn)位標(biāo)志),
還可通過(guò)CMC指令將當(dāng)前CF標(biāo)志取反。
11
狀態(tài)標(biāo)志有6個(gè),即SF、ZF、PF、CF、AF和
OF
⑤輔助進(jìn)位標(biāo)志AF(auxiliarycarryflag)
AF=L表示運(yùn)算結(jié)果的8位數(shù)據(jù)中,低4位向高4位有進(jìn)位(加
法運(yùn)算時(shí))或有借位(減法運(yùn)算時(shí)),這個(gè)標(biāo)志位只在十進(jìn)制
運(yùn)算中有用。
⑥溢出標(biāo)志0F(overflowflag)
控制標(biāo)志有3個(gè),即
①方向標(biāo)志DF(directionflag)
②中斷允許標(biāo)志『(interruptenableflag)
③跟蹤標(biāo)志TF(trapflag)又稱(chēng)為單步標(biāo)志
2.總線接口部件BIU
總線接口部件負(fù)責(zé)與存儲(chǔ)器、I/O端口傳送數(shù)
據(jù),由下列4部分組成:
①4個(gè)段地址寄存器(CS、DS、ES、SS)
②16位的指令指針寄存器
IP(InstructionPointer)
③20位的地址加法器/■一.
④6字節(jié)的指令隊(duì)列緩沖器"
⑤輸入輸出控制電路
位
k16
cs
CS左移
IP
地址加洌
物理地址
20位
15
CS、DS、SS和其他寄存器組合指向存儲(chǔ)
單元的示意圖:
本章要點(diǎn)2:
匯編語(yǔ)言的尋址方式
傳送指令
算術(shù)運(yùn)算指令及標(biāo)志位
邏輯運(yùn)算指令和移位指令
控制轉(zhuǎn)移指令
匯編語(yǔ)言程序的規(guī)范格式
偽指令及其使用
17
2.28086指令格式及尋址方式
2.2.1匯編語(yǔ)言程序格式
。匯編語(yǔ)言程序由偽指令或匯編語(yǔ)言指令組成;
*偽指令指示匯編程序如何將匯編語(yǔ)言指令轉(zhuǎn);
換成機(jī)器代碼。I
。匯編語(yǔ)言指令由操作符、一個(gè)或兩個(gè)操作數(shù)
組成!
。操作符命令CPU執(zhí)行何種操作;
。操作數(shù)指出要處理的數(shù)據(jù)(
18
例:
MOVdestination,source
8位、16位
ADDdestination,source
注意事項(xiàng)
19
?:.222一個(gè)簡(jiǎn)單的程序?qū)嵗?兩數(shù)相力口)
STSEGSEGMENT
DB64DUP(?)
?STSEGENDS
?DTSEGSEGMENT
?DATA1DB36H
?DATA2DB4BH
SUMDB?
?DTSEGENDS
?CDSEGSEGMENT
?MAINPROCFAR
?ASSUMECS:CDSEG,DS:DTSEG,SS:STSEG
oSTART:MOVAX,DTSEG
?MOVDS,AX
20
?MOVAL,DATA1
?MOVBL,DATA2
?ADDAL,BL
?MOVSUM,AL
?:.MOVAH,4CH
?:.INT21H
?MAINENDP
?:.CDSEGENDS
?ENDSTART
21
2.2.3尋址方式與機(jī)器語(yǔ)言轉(zhuǎn)換
匯編語(yǔ)言指令要解決的兩個(gè)問(wèn)題:
要指出進(jìn)行什么操作一操作符;
要指出操作數(shù)和操作結(jié)果放在何處―尋址方式。
指令中附帶CPU內(nèi)部寄存器中存儲(chǔ)器中
(立即尋址)(寄存器尋址)(直接尋址
直接給出參與指出存放數(shù)據(jù)寄存器間接尋址
寄存器相對(duì)尋址
運(yùn)算的數(shù)據(jù)的寄存器名稱(chēng)
基址變址尋址
相對(duì)基址變址尋址)
.給出存儲(chǔ)器地址找數(shù)
尋址方式
寄存器尋址
立即尋址
直接尋址
寄存器間接尋址
寄存器相對(duì)尋址
基址變址尋址
相對(duì)基址變址尋址
寄存器尋址
操作數(shù)用內(nèi)部寄存器一寄存器尋址方式。
比如:
MOVAX,BX;將BX的內(nèi)容復(fù)制到AX
ADDAL,BH;將BH的內(nèi)容加到AL的內(nèi)容中
INCCX;將CX的內(nèi)容加1
ROLAH,1;將人^!中的內(nèi)容循環(huán)左移一位
24
立即尋址
操作數(shù)就在指令中提供,叫立即尋址方式。
比如:
;將16進(jìn)制數(shù)80H送入AL
MOVAL,8OH
;將1090H送AX,AH中為10H,AL中為90H
MOVAX,1090H
25
直接尋址
數(shù)據(jù)在存儲(chǔ)器中,有效地址由指令——直接尋址。比
如:I
MOVAX,[1070H]J
;將DS段的1070H和1071H兩單元的內(nèi)容取到AX中
寄存器間接尋址
寄存器間接尋址可分為四種:
(1)以BX寄存器進(jìn)行間接尋址一數(shù)據(jù)段基址尋址;
MOVAX,[BX]
ES:MOVCX,[BX]
(2)以BP寄存器進(jìn)行間接尋址一堆棧段基址尋址‘
MOVBX,[BP]
(3)以SI、DI寄存器進(jìn)行間接尋址——變址尋址!
27
寄存器相對(duì)尋址
4個(gè)用于間接尋址的寄存器的內(nèi)容與一個(gè)位移
量相加
如:
MOVCL,[BX+1O]!
或?qū)懗桑?二
MOVCL,10[BX]
MOVCL,[BX]+10(
28
基址變址尋址
2個(gè)基址寄存器與2個(gè)變址寄存器組合有四種:
[BX+SI]或?qū)懗桑篬BX][SI]
[BX+DI]
[BP+SI]
[BP+DI]
29
相對(duì)基址變址尋址
基址寄存器與變址寄存器組合,
再加上一個(gè)位移量
例:
MOVCL,[BX+SI+1O]
30
2.38086指令系統(tǒng)
指令格式
標(biāo)號(hào):操作碼操作數(shù)1,操作數(shù)2;注釋
①一條指令中可以包含一個(gè)或多個(gè)操作數(shù)
②涉及一個(gè)操作數(shù)的指令稱(chēng)為單操作數(shù)指令
③如位移量或立即數(shù)為16位,那么低位在前,
局位在后
31
指令執(zhí)行時(shí)間
總時(shí)間=基本執(zhí)行時(shí)間
+計(jì)算有效地址的時(shí)間
+讀取內(nèi)存的時(shí)間
字操作數(shù)在內(nèi)存的存放格式也是影響一條指令
執(zhí)行時(shí)間的因素。
32
086指令系統(tǒng)分類(lèi)
2.3.1數(shù)據(jù)傳送指令
2.3.2算術(shù)指令
2.3.3邏輯指令
2.3.4串處理指令
2.3.5控制轉(zhuǎn)移指令
2.3.6處理機(jī)控制指令
2.3.1數(shù)據(jù)傳送指令
1通用數(shù)據(jù)傳送指令
2累加器專(zhuān)用傳送指令
3地址傳送指令
4標(biāo)志寄存器傳送指令
1通用傳送指令
(1)最基本的傳送指令(MOV)
MOVAL,BL;BL中的8位數(shù)據(jù)送AL
MOVES,DX;DX中16位數(shù)據(jù)送ES
幾點(diǎn)注意:
①通用傳送指令可傳送8位和16位數(shù)據(jù)。
②通用傳送指令中總是既含源操作數(shù),又含目的操
作數(shù)。
③不能在兩個(gè)內(nèi)存單元之間直接傳送數(shù)據(jù)
④CS和IP寄存器、立即數(shù)不能作為目的操作數(shù)
⑤目的操作數(shù)和源操作數(shù)不允許同時(shí)為段寄存器
36
⑥用BX、SI、DI來(lái)間接尋址時(shí),默認(rèn)的段寄存器為
DS,而用BP來(lái)間接尋址時(shí),默認(rèn)的段寄存器為SS。
⑦執(zhí)行SS寄存器賦值的傳送指令時(shí),系統(tǒng)自動(dòng)禁止
外部中斷。
⑧所有的通用傳送指令都不改變標(biāo)志。
37
(2)堆棧操作指令
推入堆棧指令PUSH和彈出堆棧指令POP。如:
PUSHAX
PUSHDS
POPDS
POPAX
幾點(diǎn)注意:
①堆棧操作總是按字進(jìn)行的。
②推入指令,SP減2,數(shù)據(jù)在棧頂。彈出指令正好相
反。
③允許PUSHCS,但不允許POPCSo
④堆棧的后進(jìn)先出。
⑤不能使用立即數(shù)方式
⑥不影響標(biāo)志位
39
(3)交換指令
交換指令XCHG可以實(shí)現(xiàn)字節(jié)或字交換。如:
XCHGAL,BL
XCHGBX,CX
XCHG[2530],CX
40
交換指令注意點(diǎn):
①目的操作數(shù)和源操作數(shù)不能均為內(nèi)存單元。
②段寄存器和IP不能作為交換指令的操作數(shù)。
③不影響標(biāo)志位
41
3地址傳送指令
(1)取有效地址指令(LEA)
如:
LEAAX,[2728];將內(nèi)存單元的偏移
量2728送AX
LEABX,[BP+SI];指令執(zhí)行后,BX中
內(nèi)容為BP+SI的值
LEASP,[0482];使堆棧指針SP為482
42
2.3.2算術(shù)運(yùn)算指令
算術(shù)運(yùn)算指令涉及兩種類(lèi)型的數(shù)據(jù)
無(wú)符號(hào)數(shù)
8位無(wú)符號(hào)數(shù)的范圍為0?255
16位無(wú)符號(hào)數(shù)的范圍為0?65535
有符號(hào)數(shù)
8位有符號(hào)數(shù)的范圍為-128?+127
16位有符號(hào)數(shù)的范圍為-32768?+32767
43
所有算術(shù)運(yùn)算指令均影響狀態(tài)標(biāo)志O
規(guī)則:
當(dāng)無(wú)符號(hào)數(shù)運(yùn)算產(chǎn)生溢出時(shí),CF為1;
當(dāng)有符號(hào)數(shù)運(yùn)算產(chǎn)生溢出時(shí),OF為1;
如運(yùn)算結(jié)果為0,貝UZF二1;一
如運(yùn)算結(jié)果為負(fù)數(shù),貝USF=1;
如運(yùn)算結(jié)果低8位中有偶數(shù)個(gè)1,則PF二1。
44
1加法指令
(1)不帶進(jìn)位位的加法指令
如:
ADDAL,50H;AL和50H相加,
結(jié)果放在AL中
ADDDI,SI;DI和SI的內(nèi)容
相加,結(jié)果在DI
45
ADD[BX+DI],AXBX+DI和BX+DI+1
2個(gè)單元和AX相加,
結(jié)果在BX+DI和
BX+DI+1所指單元
ADDAX,[BX+2000H];BX+2000H和
BX+2001H所指單
元內(nèi)容和AX的內(nèi)
容相加,結(jié)果在AX中
(2)帶進(jìn)位位的加法指令
如:
ADCAX,SI;AX和SI中的內(nèi)容以
及CF的值相加,結(jié)
果在AX
ADCDX,[SI];SI和SI+1所指的單
元的內(nèi)容和DX的內(nèi)容
以及CF的值相加,結(jié)
果在DX
47
增量指令(加1指令)
將操作數(shù)的內(nèi)容加1。不影響CF標(biāo)志
如:
INCAL;PAL中的內(nèi)容加1
INCCX;PCX中的內(nèi)容加1
INCBYTEPTR[BX+DI+500]
;將BX+DI+500所指單元
的內(nèi)容加1
48
2減法指令
(1)不考慮借位的減法指令
SUB完成2個(gè)字節(jié)或2個(gè)字的相減。
如:
SUBBX,CX;將BX中的內(nèi)容減去CX中的
內(nèi)容,結(jié)果在BX中
SUB[BP+2],CL;將BP+2所指的單元中的
值減去CL中的值,結(jié)果
在BP+2所指的堆棧單元中
49
SUBAL,20;AL中的數(shù)減去20,
結(jié)果在AL中
SUBSI,5010H;SI中的數(shù)減去5010H,
結(jié)果在SI中
SUBWORDPTR[DI],1000H
;DI和DI+1所指的兩單元中
的數(shù)減去1000H,結(jié)果在
DI和DI+1所指的單元中
50
(2)考慮借位的減法指令
如:
SBBAX,2030H;將AX的內(nèi)容減去
2030H,并減去CF值
SBBWORDPTR[DI+2],1000H
;將口1+2和DI+3所指兩單元的
內(nèi)容減去1000H,并減去CF值,
結(jié)果在DI+2和DI+3所指的單元
(3)減量指令(減1指令)
將操作數(shù)減1。不影響CF標(biāo)志
如:
DECAX;將AX的內(nèi)容減1,再送回AX中
DECBL;將乩的內(nèi)容減1,結(jié)果送回BL中
DECBYTEPTR[DI+2]
;將DI+2所指單元的內(nèi)容減1,結(jié)
果送回此單元
52
(4)求補(bǔ)指令
操作數(shù)取補(bǔ)碼
如:
NEGAL;將AL中的數(shù)取補(bǔ)數(shù)
NEGCX;將CX中的內(nèi)容取補(bǔ)數(shù)
53
⑸比較指令
如:
CMPAX,2000H;將人乂的內(nèi)容和2000H相比較,
結(jié)果影響標(biāo)志位
CMPAL,50H;將人1中的數(shù)和50H比較,結(jié)果
影響標(biāo)志位
3乘法指令
(1)無(wú)符號(hào)數(shù)的乘法指令
如:
MULBL;AL中數(shù)和BL中數(shù)相乘,
結(jié)果在AX中
MULCX;AX中數(shù)和CX中數(shù)相乘,
結(jié)果在DX和AX中
MULBYTEPTR[DI];AL中數(shù)和DI所指的單元中
數(shù)相乘,結(jié)果在AX中
55
(2)有符號(hào)數(shù)的乘法指令
如:
IMULCL;AL中有符號(hào)數(shù)與CL中有符號(hào)數(shù)相
乘,結(jié)果在AX中
IMULBX;AX和BX中的兩個(gè)有符號(hào)數(shù)相乘,
結(jié)果在DX和AX中
56
IMULBYTEPTR[BX];AL中的8位有符號(hào)數(shù)和
BX所指單元的8位有符
號(hào)數(shù)相乘,結(jié)果在AX
IMULWORDPTR[DI];AX中的16位有符號(hào)數(shù)
和DI、DI+1所指的單
元16位有符號(hào)數(shù)相乘,
結(jié)果在DX和AX中
MUL和IMUL執(zhí)行時(shí),會(huì)影響標(biāo)志位CF和OF,但,AF、
PF、SF和ZF無(wú)意義。
6十進(jìn)制調(diào)整指令
(1)壓縮的BCD碼調(diào)整指令
DAA對(duì)組合的BCD碼相加結(jié)果進(jìn)行調(diào)整。
DAS對(duì)組合的BCD碼相減結(jié)果進(jìn)行調(diào)整
注意:
①被調(diào)整的數(shù)必須在AL寄存器中;
②影響除OF外的其它狀態(tài)標(biāo)志;
③DAA必須緊接在加法指令后,DAS緊接在減指令后;
(2)非壓縮的BCD碼調(diào)整指令
AAA對(duì)非組合的BCD碼相加結(jié)果進(jìn)行調(diào)整。
AAS對(duì)非組合的BCD碼相減結(jié)果進(jìn)行調(diào)整
58
7算術(shù)運(yùn)算指令應(yīng)用舉例
(1)將AL、AH、BL中的3個(gè)數(shù)相加,將“和”放入BH
中。
MOVBH,0
ADDBH,AL
ADDBH,AH
ADDBH,BL
59
7算術(shù)運(yùn)算指令應(yīng)用舉例
(2)將兩個(gè)雙精度數(shù)相加。兩個(gè)加數(shù)分別在(DX,CX)、
(BX,AX)中,將“和”存于(DX,CX)中o
ADDCX,AX
ADCDX,BX
60
7算術(shù)運(yùn)算指令應(yīng)用舉例
(3)兩個(gè)壓縮的BCD數(shù)相加。兩個(gè)加數(shù)分別在CL、AL
中,將“和”存于AL中。
ADDAL,CL
DAA
(4)兩個(gè)非壓縮BCD數(shù)相加。兩個(gè)加數(shù)分別為5、7中,
將“和”存于AL中。
MOVAL,5
ADDAL,7
AAA
61
7算術(shù)運(yùn)算指令應(yīng)用舉例
(5)例:x、y、z均為32位數(shù),分別存放在地址為X,X+2;
Y,Y+2;Z,Z+2的存儲(chǔ)單元中,用指令序列實(shí)現(xiàn)w―x+y+24-z,
結(jié)果放在W,W+2單元中。
MOVAX,X
MOVDX,X+2
ADDAX,Y
ADCDX,Y+2;x+y
ADDAX,24
ADCDX,0;x+y+24
SUBAX,Z
SBBDX,Z+2;x+y+24~z
MOVW,AX
MOVW+2,DX;結(jié)果存入W,W+2單元
62
7算術(shù)運(yùn)算指令應(yīng)用舉例
(6)有兩個(gè)字符串形式的十進(jìn)制數(shù),2658和
3619,求二者之和。即2658+3619二?
由題意知,被加數(shù)和加數(shù)的每一位都以ASCII碼形
式存放在內(nèi)存中。
假定二數(shù)在內(nèi)存中均是低位在前,高位在后,另
留出5個(gè)單元存放相加的結(jié)果。
內(nèi)存中數(shù)據(jù)存放形式見(jiàn)下頁(yè)圖。
63
7算術(shù)運(yùn)算指令應(yīng)用舉例
STRING138H‘8’
被
35H’5’》
36H加
‘6’數(shù)
32HJ
■
■
■
STRING239H‘9’數(shù)
據(jù)
31H
‘1’加1段
36H‘6’數(shù)
33H
■3
■
?
1
SUM
結(jié)
果1
J64
LEASI,STRING1;STRING1偏移地址送SI
LEADLSTRING2;STRING2偏移地址送DI
LEABX,SUM;SUM偏移地址送BX
MOVCX,4;循環(huán)4次
CLC;清進(jìn)位標(biāo)志
AGAIN:MOVAL,[SI]
ADCAL,[DI];帶進(jìn)位加
AAA;未壓縮BCD碼調(diào)正
MOV[BX],AL;結(jié)果存入SUM
INCSI;調(diào)整指針
INCDI
INCBX
DECCX;循環(huán)計(jì)數(shù)器減1
JNZAGAIN;若未處理完,則轉(zhuǎn)AGAIN
65
2.3.3邏輯指令
邏輯運(yùn)算指令
移位指令
1邏輯運(yùn)算指令
邏輯運(yùn)算指令包括
AND(與)
OR(或);
NOT(非)(
XOR(異或),
TEST(測(cè)試)!
例:!
ANDAL,OFH;AL中內(nèi)容和OFH相與,結(jié)果在AL中
67
ORAX,00F0H;AX和OOFOH相或,結(jié)果在AX
XORAX,AX;AX內(nèi)容本身進(jìn)行異或,結(jié)
果AX清零
TEST和AND執(zhí)行同樣操作,但TEST指令不送回操作結(jié)
果,而僅僅影響標(biāo)志位。
如:
TESTAX,8000H;如AX的最高位為1,則ZF
=0,否則ZF=1
68
NOT指令求操作數(shù)的反碼。
比如:
NOTAL;AL中內(nèi)容求反碼,結(jié)果AL中
2移位指令
(1)非循環(huán)移位指令
4條移位指令:
算術(shù)左移指令SAL
邏輯左移指令SHL
算術(shù)右移指令SAR
邏輯右移指令SHR
最I(lǐng)WJ位最低位
CF—0
(a)
最局位最低位
CF—0
最高位最低位
移位指令
LCF
(a)SAL
(b)SHL
最高位最低位(c)SAR
LCF(d)SHR
0
71
(d)
(2)循環(huán)移位指令
4條循環(huán)移位指令
循環(huán)左移指令ROL
循環(huán)右移指令ROR
帶進(jìn)位位的循環(huán)左移指令RCL
帶進(jìn)位位的循環(huán)右移指令RCR
72
最高位最低位
CF
最高位最低位
循環(huán)移位指令
(b)
(a)ROL
最高位最低位
(b)ROR
(c)RCL
(d)RCR
最?曷位最低位
—CF
73
(d)
3邏輯運(yùn)算指令應(yīng)用舉例
(1)將AL中的壓縮的BCD碼轉(zhuǎn)換成非壓縮的BCD碼,
存入AH和AL中。
MOVAH,AL
ANDAH,OFH
MOVCL,4
SHRAH,CL
ANDAL,OFH
74
3邏輯運(yùn)算指令應(yīng)用舉例
(2)將AL中的數(shù)乘以4(不用乘法指令)。
'MOVCL,2
SHLAL,CL
(3)將AL中的數(shù)D0~D6清零。
ANDAL,80H
75
3邏輯運(yùn)算指令應(yīng)用舉例
(4)把AH和AL中的非壓縮BCD碼組合成壓
縮的BCD碼,放到AL中。
MOVCL,4
SHLAH,CL
ORAL,AH
(5)把AL的第5位置為1?二一二
ORAL,00100000B
76
3邏輯運(yùn)算指令應(yīng)用舉例
(6)把AL中的數(shù)x乘10
因?yàn)?0=8+2=23+2],所以可用移位實(shí)現(xiàn)乘10操作。
程序如下:!
SALAL,1;2x
MOVAH,AL
SALAL,1;4x
SALAL,1;8x
ADDAL,AH;8x+2x=lOx
77
。用移位操作代替乘除法可提高運(yùn)算速度
?:?例:前例中計(jì)算xXIO。
?(1)采用乘法指令:
MOVBL,10
MULBL
共需70?77個(gè)T周期。
(2)采用移位和加法指令:
SALAL,1;2T
MOVAH,AL;2T
SALAL,1;2T
SALAL,1;2T
ADDAL,AH;3T
只需11個(gè)T周期,僅相當(dāng)于乘法的1/7。
78
3邏輯運(yùn)算指令應(yīng)用舉例
(7)將AL的高4位與低4位互換。
MOVCL,4
ROLAL,CL
(8)將1A00H內(nèi)存單元中的雙字循環(huán)左移1位。
CMP[1AOOH],8OOOH
CMC
RCLWORDPTRE1A02H],1
RCLWORDPTRE1AOOH],1
79
2.3.5控制轉(zhuǎn)移指令
控制轉(zhuǎn)移指令中包括5類(lèi)指令,即
無(wú)條件轉(zhuǎn)移指令
條件轉(zhuǎn)移指令
循環(huán)控制指令/
子程序調(diào)用和返回指令
中斷指令
80
1關(guān)于轉(zhuǎn)移指令和調(diào)用指令的尋址
段內(nèi)直接轉(zhuǎn)移:
段內(nèi)間接轉(zhuǎn)移:
段間直接轉(zhuǎn)移:
段間間接轉(zhuǎn)移:
81
2無(wú)條件轉(zhuǎn)移指令
無(wú)條件轉(zhuǎn)移指令有四種形式
如:
JMP1000H
JMPCX
JMP2000H:0100H
JMPDWORDPTR[SI]
82
3條件轉(zhuǎn)移指令
條件轉(zhuǎn)移指令特點(diǎn):
都是相對(duì)轉(zhuǎn)移形式的
根據(jù)比較結(jié)果決定是否轉(zhuǎn)移
大部分轉(zhuǎn)移指令有兩種不同的助記符
83
比較狀態(tài)標(biāo)志值:
JE/JZ;結(jié)果為0,則轉(zhuǎn)移
JNE/JNZ;結(jié)果不為o,則轉(zhuǎn)移
JS;符號(hào)標(biāo)志SF為1則轉(zhuǎn)移
JNS;符號(hào)標(biāo)志SF為0則轉(zhuǎn)移
J0;溢出標(biāo)志OF為1則轉(zhuǎn)移
JNO;溢出標(biāo)志OF為0則轉(zhuǎn)移
JP;奇偶標(biāo)志PF為1則轉(zhuǎn)移
JNP;奇偶標(biāo)志PF為0則轉(zhuǎn)移
JC;進(jìn)位標(biāo)志CF為1則轉(zhuǎn)移
JNC;進(jìn)位標(biāo)志CF為0則轉(zhuǎn)移
84
比較兩個(gè)無(wú)符號(hào)數(shù):
JB/JNAE;低于,即不高于且不等于則轉(zhuǎn)移
JNB/JAE;不低于,即高于或者等于則轉(zhuǎn)移
JA/JNBE;高于,即不低于且不等于則轉(zhuǎn)移
JNA/JBE;不高于,即低于或者等于則轉(zhuǎn)移
比較兩個(gè)帶符號(hào)數(shù):
JL/JNGE;小于,即不大于且不等于則轉(zhuǎn)移
JNL/JGE;不小于,即大于或者等于則轉(zhuǎn)移
JG/JNLE;大于不小于且不等于則轉(zhuǎn)移
JNG/JLE;不大于即小于或等于則轉(zhuǎn)移
85
根據(jù)寄存器的值轉(zhuǎn)移:
JCXZ如CX中的值為0
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 循環(huán)水崗位職責(zé)(共7篇)-
- PVC地膠材料供貨施工合同
- 2025-2030全球瓊脂糖基質(zhì)離子交換介質(zhì)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)實(shí)驗(yàn)室萜烯測(cè)試行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 二零二五年度豬圈養(yǎng)殖環(huán)境優(yōu)化承包協(xié)議194篇
- 綠色出行戰(zhàn)略家庭低碳生活新篇章
- 廚衛(wèi)裝修防水施工協(xié)議
- 餐飲空間裝修合同樣書(shū)
- 2025藝術(shù)院校教師師德師風(fēng)自查報(bào)告范文
- 2025版房地產(chǎn)項(xiàng)目施工承包合同3篇
- 血透室護(hù)士長(zhǎng)述職
- 2024年漢中市行政事業(yè)單位國(guó)有資產(chǎn)管理委員會(huì)辦公室四級(jí)主任科員公務(wù)員招錄1人《行政職業(yè)能力測(cè)驗(yàn)》模擬試卷(答案詳解版)
- 藝術(shù)培訓(xùn)校長(zhǎng)述職報(bào)告
- 選擇性必修一 期末綜合測(cè)試(二)(解析版)2021-2022學(xué)年人教版(2019)高二數(shù)學(xué)選修一
- 《論語(yǔ)》學(xué)而篇-第一課件
- 《寫(xiě)美食有方法》課件
- 學(xué)校制度改進(jìn)
- 各行業(yè)智能客服占比分析報(bào)告
- 年產(chǎn)30萬(wàn)噸高鈦渣生產(chǎn)線技改擴(kuò)建項(xiàng)目環(huán)評(píng)報(bào)告公示
- 心電監(jiān)護(hù)考核標(biāo)準(zhǔn)
- (完整word版)申論寫(xiě)作格子紙模板
評(píng)論
0/150
提交評(píng)論