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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

指令系統(tǒng)是CPU指令的集合,Intel8086指令系統(tǒng)共有117條基本指令,按功能分為六大類:(1)數(shù)據(jù)傳送類;(2)算術(shù)運(yùn)算類;(3)邏輯運(yùn)算和移位(位操作類);(4)串操作;(5)控制轉(zhuǎn)移類;(6)處理器控制。4、指令系統(tǒng)分類3.38086CPU指令系統(tǒng)算術(shù)運(yùn)算類指令3.38086CPU指令系統(tǒng)加法指令減法指令乘法指令除法指令符號(hào)擴(kuò)展指令算術(shù)運(yùn)算是計(jì)算機(jī)經(jīng)常進(jìn)行的一種操作。算術(shù)運(yùn)算指令實(shí)現(xiàn)二進(jìn)制(和十進(jìn)制)數(shù)據(jù)的四則運(yùn)算請注意:算術(shù)運(yùn)算類指令對(duì)標(biāo)志位的影響掌握:ADD/ADC/INC、SUB/SBB/DEC/NEG/CMP熟悉:MUL/IMUL、DIV/IDIV理解:CBW/CWD、一、加法指令A(yù)DDADCINC3.38086CPU指令系統(tǒng)1、加法指令A(yù)DDADDreg,imm/reg/mem

;reg←reg+imm/reg/memADDmem,imm/reg

;mem←mem+imm/reg格式:3.38086CPU指令系統(tǒng)功能:將源操作數(shù)的內(nèi)容和目的操作數(shù)的內(nèi)容相加,相加后的結(jié)果保存在目的操作數(shù)中,并根據(jù)結(jié)果置相關(guān)標(biāo)志位

注意:源操作數(shù)和目的操作數(shù)應(yīng)同時(shí)為帶符號(hào)數(shù)或?yàn)闊o符號(hào)數(shù),且二者的數(shù)據(jù)類型應(yīng)匹配,不能同時(shí)為存儲(chǔ)器操作數(shù)

例:加法運(yùn)算ADDAL,30

;累加器與立即數(shù)相加ADDBX,[3000H];通用寄存器與存儲(chǔ)單元內(nèi)容相加ADDDI,CX;通用寄存器之間相加ADDBETA[SI],DX;存儲(chǔ)器操作數(shù)與寄存器相加這些指令對(duì)標(biāo)志位CF、OF、PF、SF、ZF和AF有影響。例:設(shè)ADDAL,BL指令執(zhí)行前,AL=66H,BL=20H,執(zhí)行指令之后,AL=86H,BL仍為20H。標(biāo)志位影響情況為:CF=0,ZF=0,SF=1,AF=0,OF=1,PF=0

3.38086CPU指令系統(tǒng)2、帶進(jìn)位加法指令A(yù)DCADCreg,imm/reg/mem

;reg←reg+imm/reg/mem+CFADCmem,imm/reg

;mem←mem+imm/reg+CF格式:功能:ADC指令將源與目的操作數(shù)相加,再加上進(jìn)位CF標(biāo)志,結(jié)果送目的操作數(shù)ADC指令按狀態(tài)標(biāo)志的定義相應(yīng)設(shè)置用法:ADC指令主要與ADD配合,實(shí)現(xiàn)多精度加法運(yùn)算3.38086CPU指令系統(tǒng)【例】無符號(hào)雙字加法運(yùn)算。MOV AX,4652H ;AX=4652HADD AX,0F0F0H ;AX=3742H,CF=1MOV DX,0234H ;DX=0234HADC DX,0F0F0H ;DX=0F325H,CF=03.38086CPU指令系統(tǒng)例:兩個(gè)無符號(hào)雙精度數(shù)的加法例子,求0002F365H+0005E024H=?在內(nèi)存的First和Second開始的區(qū)域中分別存放著2F365H和5E024H兩個(gè)數(shù),要求求其和,并存入Third中。MOVAX,First

ADDAX,Second

MOVThird,AX

MOVAX,First+2

ADCAX,Second+2

MOVThird+2,AX3.38086CPU指令系統(tǒng)相加結(jié)果為0008D389H

3、增1指令I(lǐng)NC功能:對(duì)指令中指定操作數(shù)的內(nèi)容加1后,又回送給該操作數(shù)

INC指令不影響進(jìn)位CF標(biāo)志,按定義設(shè)置其他狀態(tài)標(biāo)志用法:主要用于在循環(huán)程序中修改地址指針和循環(huán)次數(shù)等INCreg/mem;reg/mem←reg/mem+1INCBXINCBYTEPTR[BX]格式:3.38086CPU指令系統(tǒng)加法指令小結(jié)加法指令對(duì)標(biāo)志位的影響:ADD和ADC指令對(duì)所有的6個(gè)狀態(tài)標(biāo)志都有影響,INC指令不影響CF,影響其他5個(gè)標(biāo)志。學(xué)習(xí)加減法指令要會(huì)設(shè)置標(biāo)志、使用標(biāo)志。例題:(對(duì)錯(cuò)混排)

ADDAL,25HADDBYTEPTR[BX],05ADDAL,125HADDWORDPTR[BX],05ADDAX,2500HADDAL,BLADDAX,05ADD[BX],05對(duì)于多字節(jié)加法,最低字節(jié)(字)可以用ADD,剩下的應(yīng)使用ADC。如(DXAX)+(SIDI)ADDAX,DI;低16位相加

ADCDX,SI;高16位相加+CF3.38086CPU指令系統(tǒng)二、減法指令SUBSBBDECNEGCMP3.38086CPU指令系統(tǒng)1、減法指令SUB功能:將目的操作數(shù)內(nèi)容與源操作數(shù)內(nèi)容相減之后的結(jié)果(差)存入目的操作數(shù)中,對(duì)操作數(shù)的使用及標(biāo)志位的影響同ADD指令

SUBreg,imm/reg/mem

;reg←reg-imm/reg/memSUBmem,imm/reg

;mem←mem-imm/reg格式:3.38086CPU指令系統(tǒng)例3:減法運(yùn)算MOVAL,0FBH;AL=0FBHSUBAL,07H;AL=0F4H,CF=0MOVBX,1FEH;BX=1FEHSUBAL,BL;AL=0F6H,CF=13.38086CPU指令系統(tǒng)2、帶借位減法指令SBB功能:用目的操作數(shù)減去源操作數(shù),還要減去標(biāo)志位CF的值,并將相減的結(jié)果回送給目的操作數(shù)。與ADC指令類似,在實(shí)際編程中,SBB指令主要用于兩個(gè)多字節(jié)/字二進(jìn)制數(shù)的相減運(yùn)算。

用法:SBB指令主要與SUB配合,實(shí)現(xiàn)多精度減法運(yùn)算SBBreg,imm/reg/mem

;reg←reg-imm/reg/mem-CFSBBmem,imm/reg

;mem←mem-imm/reg-CF格式:3.38086CPU指令系統(tǒng)例4:雙字減法MOVAX,4652H ;AX=4652HSUBAX,0F0F0H ;AX=5562H,CF=1MOVDX,0234H ;DX=0234HSBBDX,0F0F0H ;DX=1143H,CF=1;DX.AX=02344652H

-F0F0F0F0H

=11435562H3.38086CPU指令系統(tǒng)3、減1指令DEC功能:完成對(duì)指令中指定操作數(shù)的內(nèi)容減1后,又回送給該操作數(shù)。與INC指令一樣,DEC指令通常也用于在循環(huán)過程中對(duì)地址指針和循環(huán)次數(shù)的修改

DECreg/mem;reg/mem←reg/mem-1DECCXDECWORDPTR[SI]

INC指令和DEC指令都是單操作數(shù)指令主要用于對(duì)計(jì)數(shù)器和地址指針的調(diào)整格式:3.38086CPU指令系統(tǒng)三條減法指令用法:

①SUB、SBB、DEC三條指令的指令格式以及基本用法與ADD、ADC、INC相同。

②SUB和SBB影響所有6個(gè)狀態(tài)標(biāo)志:③DEC不影響CF標(biāo)志,影響其他5個(gè)標(biāo)志。3.38086CPU指令系統(tǒng)4、求補(bǔ)指令NEG功能:對(duì)指令中指定的操作數(shù)內(nèi)容取補(bǔ)后,再將結(jié)果回送給該操作數(shù)。對(duì)一個(gè)操作數(shù)求補(bǔ)實(shí)際上就相當(dāng)于用0減去該操作數(shù)的內(nèi)容,故NEG指令也屬于減法指令。該指令的間接求法是將操作數(shù)的內(nèi)容按位求反末位加1后,再回送給該操作數(shù)0-XXXXXXXXB=(11111111B+1)-XXXXXXXXB求補(bǔ)運(yùn)算也可以表達(dá)成:將操作數(shù)按位取反后加1NEG指令對(duì)標(biāo)志的影響與用零作減法的SUB指令一樣NEGreg/mem;reg/mem←0-reg/mem格式:3.38086CPU指令系統(tǒng)理解NEG指令:NEG相當(dāng)于減法指令,標(biāo)志設(shè)置與減法指令相同;(只有對(duì)零求補(bǔ),CF=0,其他情況CF=1)

例:設(shè)DS:[BX]=(-4)補(bǔ)=11111100

執(zhí)行NEGBYTEPTR[BX]后則DS:[BX]=00000100=+4(-4的絕對(duì)值);結(jié)論:對(duì)一個(gè)負(fù)數(shù)的補(bǔ)碼求補(bǔ),得到該負(fù)數(shù)的絕對(duì)值。3.38086CPU指令系統(tǒng)在實(shí)際編程中,常用NEG指令求負(fù)數(shù)的絕對(duì)值5、比較指令CMP功能:將目的操作數(shù)與源操作數(shù)內(nèi)容相減,相減結(jié)果不回送目的操作數(shù),僅根據(jù)結(jié)果影響標(biāo)志位,對(duì)標(biāo)志位的影響與SUB相同

CMPreg,imm/reg/mem

;reg-imm/reg/memCMPmem,imm/reg

;mem-imm/reg格式:3.38086CPU指令系統(tǒng)設(shè)指令CMPAL,CL執(zhí)行之前,AL=68H,CL=9AH,該指令執(zhí)行之后,AL=68H,CL=9AH,CF=1,ZF=0,SF=1,AF=1,OF=1,PF=0

例:比較AL與100的大小,若AL<100,則跳轉(zhuǎn)到BE處執(zhí)行

CMPAL,100;AL-100JBBE;AL<100,跳轉(zhuǎn)到BE處執(zhí)行

SUBAL,100

;AL≥100,AL←AL-100INCAH;AH←AH+1BE: ...執(zhí)行比較指令之后,可以根據(jù)標(biāo)志判斷兩個(gè)數(shù)是否相等、大小關(guān)系等3.38086CPU指令系統(tǒng)三、乘法指令MULr8/m8;無符號(hào)字節(jié)乘法;AX←AL×r8/m8MULr16/m16;無符號(hào)字乘法;DX.AX←AX×r16/m16IMULr8/m8;有符號(hào)字節(jié)乘法;AX←AL×r8/m8IMULr16/m16;有符號(hào)字乘法;DX.AX←AX×r16/m163.38086CPU指令系統(tǒng)乘法指令分無符號(hào)和有符號(hào)乘法指令乘法指令的源操作數(shù)顯式給出,隱含使用的另一個(gè)操作數(shù)為AX和DX字節(jié)數(shù)據(jù)相乘:AL與r8/m8相乘,得到16位的結(jié)果,存入AX字?jǐn)?shù)據(jù)相乘:AX與r16/m16相乘,得到32位的結(jié)果,其高字存入DX,低字存入AX3.38086CPU指令系統(tǒng)乘法指令對(duì)標(biāo)志位的影響:利用OF和CF判斷乘積的高一半是否具有有效數(shù)值MUL指令——若乘積的高一半(AH或DX)為0,則OF=CF=0;否則OF=CF=1IMUL指令——若乘積的高一半是低一半的符號(hào)擴(kuò)展,則OF=CF=0;否則均為1乘法指令對(duì)其他狀態(tài)標(biāo)志沒有定義對(duì)標(biāo)志沒有定義:指令執(zhí)行后這些標(biāo)志是任意的、不可預(yù)測(就是誰也不知道是0還是1)對(duì)標(biāo)志沒有影響:指令執(zhí)行不改變標(biāo)志狀態(tài)例:乘法運(yùn)算MOVAL,0B4H ;AL=B4H=180MOVBL,11H ;BL=11H=17MULBL ;AX=OBF4H=3060;OF=CF=1,AX高8位不為0MOVAL,0B4H ;AL=B4H=-76MOVBL,11H ;BL=11H=17IMULBL ;AX=FAF4H=-1292;OF=CF=1,AX高8位含有效數(shù)字3.38086CPU指令系統(tǒng)四、除法指令DIVr8/m8 ;無符號(hào)字節(jié)除法:AL←AX÷r8/m8的商,Ah←AX÷r8/m8的余數(shù)DIVr16/m16 ;無符號(hào)字除法:;AX←DX.AX÷r16/m16的商,DX←DX.AX÷r16/m16的余數(shù)IDIVr8/m8 ;有符號(hào)字節(jié)除法:AL←AX÷r8/m8的商,Ah←AX÷r8/m8的余數(shù)IDIVr16/m16 ;有符號(hào)字除法:;AX←DX.AX÷r16/m16的商,DX←DX.AX÷r16/m16的余數(shù)3.38086CPU指令系統(tǒng)除法指令的功能除法指令分無符號(hào)和有符號(hào)除法指令,除數(shù)顯式給出,隱含使用另一個(gè)操作數(shù)AX和DX作為被除數(shù)。字節(jié)數(shù)據(jù)除法:AX除以r8/m8,8位商存入AL,8位余數(shù)存入AH字?jǐn)?shù)據(jù)除法:DX.AX除以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論