版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章Pentium的指令系統(tǒng)3.2.2算術(shù)運(yùn)算指令(Arithmetic)功能:提供加、減、乘、除、類型轉(zhuǎn)換五種基本算術(shù)操作;
利用十進(jìn)制調(diào)整指令和ASCII調(diào)整指令對(duì)BCD碼表示的十進(jìn)制數(shù)進(jìn)行算術(shù)運(yùn)算;
對(duì)帶符號(hào)數(shù)與無(wú)符號(hào)數(shù)進(jìn)行乘、除運(yùn)算。特點(diǎn):大部分都影響標(biāo)志位,不同指令影響不同:
都可以用于字節(jié)、字、雙字的運(yùn)算;
雙操作數(shù)指令當(dāng)源不為立即數(shù)時(shí),必須有一個(gè)操作數(shù)為寄存器;單操作數(shù)指令不能為立即數(shù)。
+-×÷2024/7/811)數(shù)的表示范圍
a.無(wú)符號(hào)數(shù)
N位二進(jìn)制數(shù)可表示的無(wú)符號(hào)數(shù)范圍為0~2N-1。例如,8位二進(jìn)制數(shù)00H~0FFH表示0~255,16位二進(jìn)制數(shù)0000H~0FFFFH表示0~65535。
b.有符號(hào)數(shù)
N位二進(jìn)制補(bǔ)碼數(shù)可以表示的帶符號(hào)數(shù)范圍為-2N-1~2N-1-1。例如,8位二進(jìn)制數(shù)可以表示-128~127,16位二進(jìn)制數(shù)可以表示-32768~32767。
CF=1OF=1第3章Pentium的指令系統(tǒng)溢出問(wèn)題2024/7/82這樣兩個(gè)有/無(wú)符號(hào)數(shù)進(jìn)行加減運(yùn)算時(shí),如果運(yùn)算結(jié)果超出可表示的數(shù)值范圍,會(huì)發(fā)生出錯(cuò),產(chǎn)生溢出現(xiàn)象。溢出只能出現(xiàn)在兩個(gè)同號(hào)數(shù)相加和兩個(gè)異號(hào)數(shù)相減的情況下。通常判別溢出的方法用雙高位法:所謂雙高位判別,即規(guī)定符號(hào)位(用CS表示)有進(jìn)位時(shí),CS=1,否則CS=0。數(shù)值部分最高位(CP表示)有進(jìn)位時(shí)CP=1,否則CS=0。若CS⊕CP=1("異或"運(yùn)算),則有溢出產(chǎn)生。
D7
D6
D5
D4
D3
D2
D1
D0CSCPCS⊕CP=1溢出第3章Pentium的指令系統(tǒng)如何判別溢出2024/7/831.加法類指令(Addition)
ADDdest,src
;(dest)
(dest)+(src)立即數(shù),寄存器,存儲(chǔ)器寄存器,存儲(chǔ)器1)不帶進(jìn)位位的加法指令A(yù)DDADD CX,1000H
ADD DI,SI
ADD [BX+DI],AXADD EAX,[BX+2000H]第3章Pentium的指令系統(tǒng)2024/7/84MOVAL,7EH ;(AL)=7EH MOVBL,5BH ;(BL)=5BH ADDAL,BL ;(AL)=7EH+5BH=D9H影響標(biāo)志位的情況:SF=1 ,結(jié)果最高位=1ZF=0 ,結(jié)果不等于0AF=1 ,D3位向D4有進(jìn)位
PF=0 ,”1”的個(gè)數(shù)為奇數(shù)
CF=0 ,無(wú)進(jìn)位
OF=1 ,和超過(guò)+127
(兩個(gè)正數(shù)相加,結(jié)果為負(fù);反之亦是)第3章Pentium的指令系統(tǒng)例:2024/7/85ADC AX,SI ADC DX,[SI] ADC BX,3000H 2)帶進(jìn)位位的加法指令A(yù)DCADCdest,src
;(dest)←(dest)+(src)+CFCF:
進(jìn)位標(biāo)志CF的現(xiàn)行值(上條指令CF值)用途:主要用于多字節(jié)運(yùn)算中。第3章Pentium的指令系統(tǒng)2024/7/86計(jì)算兩個(gè)多字節(jié)數(shù)相加3B74AC60F8H+20D59E36C1H=?流程圖多字節(jié)數(shù)內(nèi)存存放兩個(gè)多字節(jié)數(shù)存放在:DATA1,DATA2的開(kāi)始單元。舉例:第3章Pentium的指令系統(tǒng)2024/7/87程序:
MOVCX,5 MOVSI,0 ;清SI
CLC
;清CFLOOPER: MOVAL,DATA2[SI]
ADCDATA1[SI],AL INCSI ;(SI)+1
(SI) DECCX ;(CX)-1(CX) JNZLOOPER ;(CX)0轉(zhuǎn)
HLT ;停機(jī)第3章Pentium的指令系統(tǒng)2024/7/883)字交換加法指令XADDXADDdest,src
;(dest)→(src),(dest)+(src)→(dest)例:已知[EAX]=20000002H,
1000H開(kāi)始的內(nèi)存單元中為30000003H
執(zhí)行指令XADD[1000H],EAX[EAX]=30000003H,
1000H開(kāi)始的內(nèi)存單元中為50000005H源操作數(shù)必須是寄存器。目的操作數(shù)可以是存儲(chǔ)器和寄存器方式。第3章Pentium的指令系統(tǒng)2024/7/894)增量指令I(lǐng)NCINC dest
;(dest)←(dest)+1寄存器、存儲(chǔ)器。不能是段寄存器(Incrementby1)
功能:對(duì)指定的目標(biāo)操作數(shù)+1
操作數(shù)單元。用途:用于在循環(huán)程序中修改地址指針和循環(huán)次數(shù)。標(biāo)志位影響情況:
影響SF,ZF,AF,PF,OF。不影響CF。
INCDL ;8位寄存器+1INCSI ;16位寄存器+1INCBYTEPTR[BX][SI];存儲(chǔ)器+1(字節(jié)操作)INCWORDPTR[DI] ;存儲(chǔ)器+1(字操作)
INCDS ;第3章Pentium的指令系統(tǒng)2024/7/8102.減法類指令
(Subtraction)1)不考慮借位的減法指令SUBSUBdest,src
;(dest)
(dest)-(src)立即數(shù),寄存器,存儲(chǔ)器寄存器,存儲(chǔ)器SUB EBX,ECX SUB [BP+2],CL SUB SI,5010H SUB WORDPTR[DI],1000H第3章Pentium的指令系統(tǒng)2024/7/8112)考慮借位的減法指令SBB(Subtractionwithborrow)SBB AX,2530HSBB WORDPTR[EDI+2],1000HSBBdest,src
;(dest)
(dest)-(src)-CF
用途:用于多字節(jié)數(shù)相減3)減量指令DEC(Decrementby1)
DECdest
;(dest)←(dest)-1寄存器、存儲(chǔ)器。不能是段寄存器第3章Pentium的指令系統(tǒng)2024/7/812DEC用途舉例:
… MOVAX,0FFFFH CYC:DECAX JNZCYC HLT …用于延時(shí)時(shí)間。第3章Pentium的指令系統(tǒng)2024/7/8134)求補(bǔ)指令NEG(Negate)NEGdest
;(dest)←0-(dest)寄存器、存儲(chǔ)器操作:
把操作數(shù)按位求反后末位+1。(dest)←0FFFFH-(dest)+11。操作數(shù)的原值為正數(shù),求補(bǔ)后變?yōu)槠湄?fù)數(shù)的補(bǔ)碼。2。操作數(shù)的原值為負(fù)數(shù)(以補(bǔ)碼形式表示),求補(bǔ)后變?yōu)槠鋵?duì)應(yīng)的正數(shù)。3。影響各標(biāo)志位。4。操作數(shù)不能為段寄存器。NEG EAX NEG ECX第3章Pentium的指令系統(tǒng)2024/7/814求絕對(duì)值在內(nèi)存中,從AREA1開(kāi)始存放100個(gè)帶符號(hào)數(shù)。求各數(shù)的絕對(duì)值將其存于AREA2的開(kāi)始單元。流程圖第3章Pentium的指令系統(tǒng)應(yīng)用舉例2024/7/815程序:
LEASI,AREA1 LEADI,AREA2 MOVCX,100CHECK:MOVAL,[SI] ORAL,AL;(AL)內(nèi)容不變,置標(biāo)志
JNSNEXT ;SF=0轉(zhuǎn)NEXT
NEGAL
;負(fù)數(shù)求補(bǔ)
NEXT:MOV[DI],AL;送目標(biāo)
INCSI INCDI DECCX JNZCHECK HLT2024/7/8165)比較指令CMP(Compare)CMPdest,src
;(dest)-(src)立即數(shù),寄存器,存儲(chǔ)器寄存器,存儲(chǔ)器影響標(biāo)志:A、C、O、P、S、Z。只置標(biāo)志位CMP AX,2000H CMP EAX,[EBX+EDI+100]CMPEDX,EDI 第3章Pentium的指令系統(tǒng)2024/7/817用途:用比較指令來(lái)比較兩個(gè)數(shù)之間的關(guān)系: 兩者是否相等,兩個(gè)數(shù)中哪個(gè)大。(1)根據(jù)Z標(biāo)志,判斷兩者是否相等;(2) 根據(jù)CF標(biāo)志,判斷兩個(gè)無(wú)符號(hào)數(shù)的大??;(3) 用SF、OF標(biāo)志,判斷二個(gè)帶符號(hào)數(shù)的大小。
CMPAX,BX ZF=1,(AX)=(BX),兩者相等ZF=0,(AX)=(BX),兩者不相等比較AX,BX寄存器,將大數(shù)
(AX)
…
CMPAX,BX JNCNEXT;CF=0轉(zhuǎn)NEXT XCHGAX,BXNEXT:……結(jié)論:CF=0,(AX)>(BX);CF=1,(AX)<(BX)第3章Pentium的指令系統(tǒng)2024/7/818四種情況討論(操作數(shù)以8位為例):ABCMPA,B結(jié)論75A>0,B>0SF=0,OF=0則:A>B57情況A>0,B>0SF=1,OF=0則:A<B-525-7-2-5-71-7-5-5-(-7)+2A<0,B<0SF=1,OF=0則:A<BA<0,B<0SF=0,OF=0則:A>B-7-(-5)-2
3+127-63A>0,B<0OF=1,SF=1則:A>B+127-(-63)+190
4-63+127A<0,B>0SF=0,OF=1則:A<B-63-(+127)-1907-52第3章Pentium的指令系統(tǒng)2024/7/8196)比較并交換指令CMPXCHGCMPXCHGdest,src
;目的數(shù)與累加器比較寄存器寄存器,存儲(chǔ)器只影響ZF標(biāo)志:ZF=1源操作數(shù)→目的
ZF=0目的操作數(shù)→累加器舉例:[EBX]=76543210H,[ECX]=01234567H,[EAX]=01234567H,則執(zhí)行指令CMPXCHGECX,EBX后:[EBX]=76543210H,[ECX]=76543210H,[EAX]=01234567H,第3章Pentium的指令系統(tǒng)2024/7/8207)8字節(jié)比較指令CMPXCHG8BCMPXCHG8Bdest
存儲(chǔ)器舉例:[EAX]=11111111H,[EBX]=22222222H,[ECX]=33333333H,[EDX]=44444444H,設(shè)DS段1000H所指單元開(kāi)始的8字節(jié)為4444444411111111H,執(zhí)行指令CMPXCHG8B [1000H]功能:1.[EDX:EAX]中存儲(chǔ)8個(gè)字節(jié)與存儲(chǔ)器中的8個(gè)字節(jié)比較2.ZF=1,將[ECX:EBX]中8個(gè)字節(jié)送到目的操作數(shù)中去3.ZF=0,將目的操作數(shù)送入[EDX:EAX]只影響ZF標(biāo)志第3章Pentium的指令系統(tǒng)2024/7/8213.乘法類指令
(Multiplication)1)無(wú)符號(hào)數(shù)的乘法指令MUL
MULSrc
;無(wú)符號(hào)字節(jié)/字/雙字乘法
*
AL(AX)(EAX)為隱含的乘數(shù)寄存器。*
AX(DX,AX)(EDX,EAX)為隱含的乘積寄存器。*
SRC不能為立即數(shù)、不能為段寄存器。*除CF和OF外,對(duì)條件標(biāo)志位無(wú)定義。注意:MUL CXMUL BYTEPTR[DI] MULWORDPTR[SI] 對(duì)標(biāo)志沒(méi)有定義:指令執(zhí)行后這些標(biāo)志是任意的、不可預(yù)測(cè)(就是誰(shuí)也不知道是0還是1)對(duì)標(biāo)志沒(méi)有影響:指令執(zhí)行不改變標(biāo)志狀態(tài)第3章Pentium的指令系統(tǒng)2024/7/822IMUL DX,BX,300 IMUL CX,23 IMUL EBP,200 IMUL ECX,EDX,2000 2)有符號(hào)數(shù)的乘法指令I(lǐng)MUL
IMUL CL IMUL BX,100 IMUL BYTEPTR[BX] IMUL WORDPTR[DI] 3)有符號(hào)數(shù)乘法指令的擴(kuò)充形式
IMUL BX,CX IMUL EDX,ECX IMUL DI,MEM_WORD IMUL EDX,MEM_DWORDIMULSrc
;有符號(hào)字節(jié)/字/雙字乘法
第3章Pentium的指令系統(tǒng)2024/7/8234.除法類指令
(Division)
DIVSrc
;無(wú)符號(hào)字節(jié)/字/雙字除法1)無(wú)符號(hào)數(shù)的除法指令DIV*
AX(DX,AX)(EDX,EAX)為隱含的被除數(shù)寄存器。*
AL(AX)(EAX)為隱含的商寄存器。*
AH(DX)(EDX)為隱含的余數(shù)寄存器。*
SRC不能為立即數(shù)、不能為段寄存器。*
對(duì)所有條件標(biāo)志位均無(wú)定義。注意:DIV CL DIV WORDPTR[DI] 第3章Pentium的指令系統(tǒng)2024/7/8242)有符號(hào)數(shù)的除法指令I(lǐng)DIVIDIV BX IDIV BYTEPTR[DI] 【例】:寫出實(shí)現(xiàn)帶符號(hào)數(shù)0400H/0B4H運(yùn)算的程序段。
MOVAX,0400H ;(AX)=0400H=1024MOVBL,0B4H ;(BL)=0B4H=-76IDIV BL
;商(AL)=0F3H=-13,
余數(shù)(AH)=24H=36
IDIVSrc
;有符號(hào)字節(jié)/字/雙字除法
第3章Pentium的指令系統(tǒng)2024/7/8255.轉(zhuǎn)換指令CBW
;AX←ALCWD
;DX、AX←AXCWDE
;EAX←AXCQD
;
EDX、EAX←EAX功能:在兩個(gè)長(zhǎng)度不等的數(shù)進(jìn)行運(yùn)算時(shí),將長(zhǎng)度短的數(shù)的位數(shù)擴(kuò)展,以使兩數(shù)的長(zhǎng)度一致,類型相同。對(duì)無(wú)符號(hào)數(shù),只須將高位字節(jié)或字、雙字補(bǔ)0;對(duì)帶符號(hào)數(shù),擴(kuò)展時(shí)高位補(bǔ)0或補(bǔ)1取決被擴(kuò)展數(shù)的符號(hào)位,正數(shù)則高位補(bǔ)0,負(fù)數(shù)補(bǔ)1。第3章Pentium的指令系統(tǒng)2024/7/826moval,80h
;al=80hcbw
;ax=ff80hmovax,0BA45H
;ax=0BA45Hcwd
;dx=0ffffh,ax=0ba45h
單操作碼指令隱含對(duì)AL或AX進(jìn)行符號(hào)擴(kuò)展
不影響標(biāo)志位第3章Pentium的指令系統(tǒng)2024/7/827
MOVAX,XIMULY;x*y(DX,AX)MOVCX,AXMOVBX,DX;(DX,AX)(BX,CX)MOVAX,ZCWD;WORDDWORDADDCX,AXADCBX,DX;x*y+zSUBCX,540SBBBX,0;x*y+z-540MOVAX,VCWDSUBAX,CXSBBDX,BX;v-(x*y+z-540)IDIVX
;(v-(x*y+z-540))/x第3章Pentium的指令系統(tǒng)例:x,y,z,v均為16位帶符號(hào)數(shù),計(jì)算(v-(x*y+z-540))/x2024/7/8286.BCD碼指令
BCD碼:用二進(jìn)制編碼的十進(jìn)制數(shù),
又稱二--十進(jìn)制數(shù)組合BCD碼:用4位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù)例:(59)10=(01011001)BCD非組合(分離)BCD碼:用8位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù)例:(59)10=(0000010100001001)BCD
數(shù)字的ASCII碼是一種組合BCD碼DIGIT ASCII BCD0 00110000 000000001 00110001 000000012 00110010 00000010… … …9 00111001 00001001第3章Pentium的指令系統(tǒng)2024/7/829BCD數(shù)的運(yùn)算結(jié)果19組合BCD:00011001
+08+00001000
2700100001問(wèn)題的提出:
(00100111)BCD
AF=1+110
08組合BCD:00001000
+07+00000111
1500001111
(00010101)BCD
>9+110
第3章Pentium的指令系統(tǒng)2024/7/830
1)加減法的組合BCD調(diào)整指令:
;AL←將AL中和調(diào)整為組合BCD碼差DAA和DAS指令的調(diào)整方法:AF=1或(AL)0~3=A~F,則(AL)
(AL)
06H,AF=1CF=1或(AL)4~7=A~F,則(AL)
(AL)
60H,CF=1(DAA做‘+’,DAS做‘-’)注意:
*
隱含的操作寄存器為AL
*
緊接在加減指令之后使用
*影響條件標(biāo)志位(對(duì)OF無(wú)定義)第3章Pentium的指令系統(tǒng)(ADD/ADCAL,i8/r8/m8)
DAA
(SUB/SBBAL,i8/r8/m8)
DAS2024/7/831
2)加減法的分離BCD調(diào)整指令:
;AL←將AL中和/差調(diào)整為分離BCD碼
AH←AH+/-調(diào)整的進(jìn)位第3章Pentium的指令系統(tǒng)(ADD/ADCAL,i8/r8/m8)
AAA(SUB/SBBAL,i8/r8/m8)
AAS注意:*
隱含的操作寄存器為AL*
緊接在加減指令之后使用*
AAA和AAS指令在調(diào)整中產(chǎn)生了進(jìn)位或借位,則AH要加上進(jìn)位或減去借位,同時(shí)CF=AF=1,否則CF=AF=0;它們對(duì)其他標(biāo)志無(wú)定義2024/7/832例:設(shè)兩個(gè)以ASC
碼表示的十進(jìn)制數(shù)代碼‘7’‘5’,求出其相加后的分離式BCD碼,存入AX中。
0011011137H+0011010135H
01101100+00000110加06調(diào)整
(AL)=01110010進(jìn)位送AH
(AL)=01110010
+0000000100000000
(AH)=00000001
00001111(AL)^0FH^
0000000100000010AHAL12MOV
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024銷售人員勞務(wù)合同范本
- 2024食品行業(yè)銷售渠道拓展合同
- 2025年度智能化廚房設(shè)備承包合同范本4篇
- 2025年度生物科技研發(fā)成果保密合同4篇
- 2025年度深海油氣田打深水井設(shè)備供應(yīng)合同2篇
- 2025年度圖書館蟲(chóng)害防治與文物保護(hù)服務(wù)合同4篇
- 2025年度智慧城市建設(shè)項(xiàng)目代理房屋買賣合同4篇
- 2024版養(yǎng)豬場(chǎng)用工合同范本
- 2024版貨物運(yùn)輸合同完整樣本
- 2025年度新型環(huán)保儲(chǔ)罐安裝及維護(hù)服務(wù)合同4篇
- 深圳2024-2025學(xué)年度四年級(jí)第一學(xué)期期末數(shù)學(xué)試題
- 中考語(yǔ)文復(fù)習(xí)說(shuō)話要得體
- 《工商業(yè)儲(chǔ)能柜技術(shù)規(guī)范》
- 華中師范大學(xué)教育技術(shù)學(xué)碩士研究生培養(yǎng)方案
- 醫(yī)院醫(yī)學(xué)倫理委員會(huì)章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 風(fēng)浪流耦合作用下錨泊式海上試驗(yàn)平臺(tái)的水動(dòng)力特性試驗(yàn)
- 高考英語(yǔ)語(yǔ)法專練定語(yǔ)從句含答案
- 有機(jī)農(nóng)業(yè)種植技術(shù)操作手冊(cè)
- 【教案】Unit+5+Fun+Clubs+大單元整體教學(xué)設(shè)計(jì)人教版(2024)七年級(jí)英語(yǔ)上冊(cè)
- 2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版期末測(cè)評(píng)卷(含答案)
評(píng)論
0/150
提交評(píng)論