尋址方式和指令系統(tǒng).ppt_第1頁
尋址方式和指令系統(tǒng).ppt_第2頁
尋址方式和指令系統(tǒng).ppt_第3頁
尋址方式和指令系統(tǒng).ppt_第4頁
尋址方式和指令系統(tǒng).ppt_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

優(yōu)秀精品課件文檔資料,第2章 尋址方式和指令系統(tǒng),2.1 尋址方式 2.2 數(shù)據(jù)傳送類指令 2.3 算術運算類指令 2.4 位操作類指令 2.5 串操作類指令 2.6 控制轉(zhuǎn)移類指令 2.7 處理機控制類指令,開 始,2.3 算術運算類指令,2.3.1 加法指令 2.3.2 減運算指令 2.3.3 乘運算指令 2.3.4 除運算指令 2.3.5 符號擴展指令 2.3.6 十進制調(diào)整指令,返回本章首頁,2.3.1 加法指令,1加1指令 INC 2加指令ADD 3帶進位加指令ADC,1加1指令 INC 語句格式:INC OPD 功能:將目的操作數(shù)加1,結(jié)果送目的地址。即(OPD)+1OPD。 INC指令是一個單操作數(shù)指令,操作數(shù)可以是寄存器或存儲器操作數(shù)。 如:INC BX,即(BX)+1BX。 加1指令可用于對計數(shù)器和地址指針進行調(diào)整。,2加指令ADD 語句格式:ADD OPD, OPS 功能:將目的操作數(shù)與源操作數(shù)相加,結(jié)果存入目的地址中,源地址的內(nèi)容不改變。 即(OPD)+(OPS)OPD。,3帶進位加指令ADC 語句格式:ADC OPD,OPS 功能:將目的操作數(shù)加源操作數(shù)再加低位進位,結(jié)果送目的地址。 即(OPD)+(OPS)+CF OPD。 【例2.20】無符號雙字加法運算。 Sum=0234 4652H + 0F0F0F 0F0H MOV AX,4652H ;(AX)=4652H ADD AX,0F0F0H ;(AX)=3742H,CF=1 MOV DX,0234H ;(DX)=0234H ADC DX,0F0F0H ;(DX)=0F325H,CF=0,返回本節(jié),2.3.2 減運算指令,1減1指令DEC 2減指令SUB 3求補指令NEG 4帶借位減指令 SBB 5比較指令 CMP,1減1指令DEC 語句格式:DEC OPD 功能:將目的操作數(shù)減1,結(jié)果送目的地址。即(OPD)1OPD。 DEC指令是一個單操作數(shù)指令,操作數(shù)可以是寄存器或存儲器操作數(shù)。 如:DEC CX。即(CX)1CX。 減1指令DEC也一般用于對計數(shù)器和地址指針的調(diào)整。,2減指令SUB 語句格式:SUB OPD,OPS 功能:目的操作數(shù)減源操作數(shù),結(jié)果存于目的地址,源地址內(nèi)容不變。 即(OPD)(OPS)OPD 【例2.21】減法運算。 MOV AX ,5678H ;(AX)=5678H SUB AX ,1234H ;(AX)=4444H MOV BX ,3354H ;(BX)=3354H SUB BX ,3340H ;(BX)=0014H,3求補指令NEG 語句格式:NEG OPD 功能:將目的操作數(shù)的每一位求反(包括符號位)后加1,結(jié)果送目的地址。 即(OPD)+1OPD。 【例2.22】求補運算。 MOV AX,0FF64H NEG AL ;(AX)=0FF9CH SUB AL,9DH ;(AX)=0FFFFH NEG AX ;(AX)=0001H DEC AL ;(AX)=0000H NEG AX ;(AX)=0000H,4帶借位減指令 SBB 語句格式:SBB OPD ,OPS 功能:目的操作數(shù)減源操作數(shù)再減低位借位CF,結(jié)果送目的地址。 即(OPD)(OPS)CF OPD,5比較指令 CMP,語句格式:CMP OPD,OPS 功能:目的操作數(shù)減源操作數(shù),結(jié)果只影響標志位,不送入目的地址。 即(OPD)(OPS)。 【例2.24】比較AL的內(nèi)容數(shù)值大小。 CMP AL,50 ;(AL)50 JB BELOW ;(AL)=50,( AL)50AL INC AH ;(AH)+1AH BELOW: ,返回本節(jié),2.3.3 乘運算指令,1無符號數(shù)乘法指令MUL 2有符號乘指令IMUL,1無符號數(shù)乘法指令MUL,語句格式: MUL OPS 功能: 若是字節(jié)數(shù)據(jù)相乘,(AL)與OPS相乘得到字數(shù)據(jù)存入AX中;若是字數(shù)據(jù)相乘,則(AX)與OPS相乘得到雙字數(shù)據(jù),高字存入DX、低字存入AX中。 即字節(jié)乘法:(AL)* (OPS) AX,字乘法:(AX) * (OPS) DX,AX OPS 不能使用立即數(shù)尋址方式 【例2.25】無符號數(shù)0A3H與11H相乘。 MOV AL,0A3H ;(AL)=0A3H MOV BL, 11H ;(BL)=11H MUL BL ;(AX)=0AD3H,2有符號乘指令IMUL,語句格式:IMUL OPS 功能:字節(jié)乘法:(AL)*(OPS)AX,字乘法:(AX)*(OPS)DX、AX。 IMUL指令除計算對象是帶符號二進制數(shù)外,其他都與MUL一樣,但計算結(jié)果不同。 【例2.26】有符號數(shù)0B4H與11H相乘。 MOV AL,0B4H ;(AL)=B4H MOV BL,11H ;(BL)=11H IMUL BL ;(AX)=0FAF4H,返回本節(jié),2.3.4 除運算指令,1無符號除指令DIV 2有符號除指令IDIV,1無符號除指令DIV 語句格式:DIV OPS 功能:字節(jié)除法:(AX)/(OPS) AL(商)、AH(余數(shù)) 字除法:(DX、AX)/(OPS) AX(商)、DX(余數(shù)) OPS 不能使用立即數(shù)尋址方式 【例2.27】寫出實現(xiàn)無符號數(shù)0400H / 0B4H運算的程序段。 MOV AX,0400H ;(AX)=0400H MOV BL,0B4H ;(BL)=0B4H DIV BL ;商(AL)=05H,余數(shù)(AH)=7CH,2有符號除指令IDIV 語句格式:IDIV OPS 功能:字節(jié)除法:(AX)/(OPS) AL(商)、AH(余數(shù)) 字除法:(DX,AX)/(OPS) AX (商)、DX(余數(shù)) 除法指令DIV和IDIV雖然對標志的影響未定義,但可產(chǎn)生溢出。 OPS 不能使用立即數(shù)尋址方式。 【例2.28】寫出實現(xiàn)有符號數(shù)0400H /0B4H運算的程序段。 MOV AX,0400H ;(AX)=0400H MOV BX,0B4H ;(BX)=0B4H IDIV BX ;(AL)=0F3H,(AH)=24H,返回本節(jié),2.3.5 符號擴展指令,1字節(jié)轉(zhuǎn)換成字指令CBW 2將字轉(zhuǎn)換成雙字指令CWD,1字節(jié)轉(zhuǎn)換成字指令CBW 語句格式:CBW 功能:將AL中的符號位數(shù)據(jù)擴展至AH。 【例2.29】將字節(jié)數(shù)據(jù)擴展成字數(shù)據(jù)。 MOV AL,0A5H ;(AL)=0A5H CBW ;(AX)=0FFA5H ADD AL,70H ;(AL)=25H CBW ;(AX)=0025H,2將字轉(zhuǎn)換成雙字指令CWD 語句格式:CWD 功能:將AX中的符號位數(shù)據(jù)擴展至DX 。 【例2.30】將字數(shù)據(jù)擴展成雙字數(shù)據(jù)。 MOV DX, 0 ;(DX)=0 MOV AX, 0FFABH ;(AX)=0FFABH CWD ;(DX)=0FFFFH (AX)=0FFABH,返回本節(jié),2.5 串操作類指令,串操作指令 : 數(shù)據(jù)傳送類指令每次只能傳送一個數(shù)據(jù),若要傳送大批數(shù)據(jù)就需要重復編程,這樣就浪費了大量的時間和空間。為此8086提供了一組處理主存中連續(xù)存放數(shù)據(jù)串的指令,這就是串操作指令。,返回本章首頁,1傳送指令MOVS 語句格式: MOVSB字節(jié)串傳送 MOVSW字串傳送 功能:將以SI為指針的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)傳送至以DI為指針的目的地址中去,并自動修改指針,使之指向下一個字節(jié)(或字)存儲單元。 即:(DS:SI)ES:DI。 當DF=0時,(SI)和(DI)增量。 當DF=1時,(SI)和(DI)減量。,2串比較指令CMPS 語句格式: CMPSB字節(jié)串比較 CMPSW字串比較 功能:將SI所指的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)與DI所指的目的串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)相減,并根據(jù)相減的結(jié)果設置標志,但結(jié)果并不保存。 即:(SI)(DI)。 修改串指針,使之指向串中的下一個元素。 當DF=0時,(SI)和(DI)增量。當DF=1時,(SI)和(DI)減量。,3串搜索指令SCAS 語句格式: SCASB字節(jié)串搜索 SCASW字串搜索 功能:AL(字節(jié))或AX(字)中的內(nèi)容與DI所指的目的串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)相減,根據(jù)相減結(jié)果設置標志位,結(jié)果不保存, 即: 字節(jié)操作:(AL)(DI),字操作:(AX)(DI)。 修改指針使之指向串中的下一個元素。 當DF=0時,(DI)增量。當DF=1時,(DI)減量。,4從源串中取數(shù)指令LODS 語句格式: LODSB從字節(jié)串中取數(shù) LODSW從字串中取數(shù) 功能:將SI所指的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)取出來送入AL(或AX)中。 即: 字節(jié)操作:(SI)AL,字操作:(SI)AX。 修改指針SI,使它指向串中的下一個元素。 當DF=0時,(SI)增量。當DF=1時,(SI)減量。,5往目的串中存數(shù)指令STOS 語句格式: STOSB往字節(jié)串中存數(shù) (2)STOSW往字串中存數(shù) 功能:將AL或AX中的數(shù)據(jù)送入DI所指的目的串中的字節(jié)(或字)存儲單元中。 即: 字節(jié)操作:(AL)DI,字操作:(AX)DI。 修改指針DI,使之指向串中的下一個元素。 當DF=0時,(DI)增量)。當DF=1時,(DI)減量。,6重復前綴指令REP REPZ REPNZ (1)REP REP前綴用在MOVS、STOS 、LODS指令前。 功能:每執(zhí)行一次串指令(CX)1,直到(CX)=0,重復執(zhí)行結(jié)束。 (2)REPZ 該指令一般用在CMP、SCAS指令前。 功能:每執(zhí)行一次串指令(CX)1,并判斷ZF標志是否為0,只要(CX)=0或ZF=0,則重復執(zhí)行結(jié)束。 (3)REPNZ 該指令一般用在CMPS、SCAS 指令前。 功能:每執(zhí)行一次串指令(CX)1,并判斷ZF標志是否為0,只要(CX)=0或ZF=1,則重復執(zhí)行結(jié)束。,2.6 控制轉(zhuǎn)移類指令,2.6.1 條件轉(zhuǎn)移指令 2.6.2 無條件轉(zhuǎn)移指令 2.6.3 循環(huán)指令 2.6.4 子程序調(diào)用指令 2.6.5 中斷指令,返回本章首頁,2.6.1 條件轉(zhuǎn)移指令,1簡單條件轉(zhuǎn)移指令 2無符號數(shù)條件轉(zhuǎn)移指令 3. 有符號數(shù)條件轉(zhuǎn)移指令 它們都有通用的語句格式和功能。 語句格式: 標號: 操作符 短標號 功能:如果條件滿足,則(IP)位移量IP。,1簡單條件轉(zhuǎn)移指令,2無符號數(shù)條件轉(zhuǎn)移指令,表2.2 無符號數(shù)條件轉(zhuǎn)移指令,【例2.53】比較無符號數(shù)大小,將較大的數(shù)存放AX寄存器。 CMP AX, BX ;(AX)(BX) JNB NEXT ;若AX=BX,轉(zhuǎn)移到NEXT XCHG AX,BX ;若AXBX,交換 NEXT:,3. 有符號數(shù)條件轉(zhuǎn)移指令,表2.3 有符號數(shù)條件轉(zhuǎn)移指令,【例2.54】比較有符號數(shù)大小,將較大的數(shù)存放在AX寄存器。 CMP AX,BX ;(AX)(BX) JNL NEXT ;若AX=BX,轉(zhuǎn)移到NEXT XCHG AX,BX ;若AXBX,交換 NEXT:,返回本節(jié),2.6.2 無條件轉(zhuǎn)移指令,表2.4 無條件轉(zhuǎn)移指令的語句格式及功能,返回本節(jié),2.6.3 循環(huán)指令,1循環(huán)指令LOOP 2相等/為零循環(huán)指令LOOPE 3不相等/不為零循環(huán)指令LOOPNE 4CX為零轉(zhuǎn)移指令JCXZ,1循環(huán)指令LOOP 語句格式: LOOP 短標號 功能:(CX)1 0,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。 說明:使用LOOP指令可代替兩條指令: DEC CX JNE 短標號,2相等/為零循環(huán)指令LOOPE 語句格式: LOOPE 短標號 LOOPZ 短標號 功能:(CX)1 0且ZF=1,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。,3不相等/不為零循環(huán)指令LOOPNE 語句格式: LOOPNE 短標號 LOOPNZ 短標號 功能:(CX)10,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。,4CX為零轉(zhuǎn)移指令JCXZ 語句格式: JCXZ 短標號 功能:(CX)10,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。,返回本節(jié),2.6.4 子程序調(diào)用指令,1子程序調(diào)用指令CALL (1)段內(nèi)直接調(diào)用 (2)段間直接調(diào)用 (3)段內(nèi)間接調(diào)用 (4)段間間接調(diào)用 2返回指令RET (1)語句格式:RET (2)語句格式:RET n(n為偶數(shù)),返回本節(jié),2.6.5 中斷指令,1中斷調(diào)用指令INT 語句格式:INT n 功能:(FLAGS)(SP),0 IF、TF。 (CS) (SP),(4*n+2) C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論