匯編語(yǔ)言指令大全_第1頁(yè)
匯編語(yǔ)言指令大全_第2頁(yè)
匯編語(yǔ)言指令大全_第3頁(yè)
匯編語(yǔ)言指令大全_第4頁(yè)
匯編語(yǔ)言指令大全_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、匯編語(yǔ)言指令大全aaa未組合的十進(jìn)制加法調(diào)整指令 aaa(ascii adgust for addition) 格式: aaa 功能: 對(duì)兩個(gè)組合的十進(jìn)制數(shù)相加運(yùn)算(存在al中)的結(jié)果進(jìn)行調(diào)整,產(chǎn)生一個(gè)未組合的十進(jìn)制數(shù)放在ax中.說(shuō)明: 1. 組合的十進(jìn)制數(shù)和未組合的十進(jìn)制數(shù):在計(jì)算中,十進(jìn)制數(shù)可用四位二進(jìn)制數(shù)編碼,稱為bcd碼. 當(dāng)一個(gè)節(jié)(8位)中存放一位bcd碼,且放在字節(jié)的低4位, 高4位為時(shí)稱為未組合的bcd碼. 2. aaa的調(diào)整操作 若(al) and 0fh>9 或 af=1,則調(diào)整如下: (al)<-(al)+6,(ah)<-(ah)+1,af=1,cf<

2、;-af,(al)<-(al) and 0fhaad未組合十進(jìn)制數(shù)除法調(diào)整指令 aad(ascii adjust for division) 格式: aad 功能: 在除法指令前對(duì)ax中的兩個(gè)未組合十進(jìn)制數(shù)進(jìn)行調(diào)整,以便能用div指令實(shí)現(xiàn)兩個(gè)未組合的十進(jìn)制數(shù)的除法運(yùn)算,其結(jié)果為未組合的十進(jìn)制數(shù),商(在al中)和余數(shù)(在ah中).說(shuō)明: 1. aad指令是在執(zhí)行除法div之前使用的,以便得到二進(jìn)制結(jié)果存于al中,然后除以oprd,得到的商在al中,余數(shù)在ah中. 2. 示例: mov bl,5 mov ax,0308h aad ;(al)<-1eh+08h=26h,(ah)<-

3、0 div bl ;商07h->(al),余數(shù)03h->(ah).aam未組合十進(jìn)制數(shù)乘法調(diào)整指令 aam(ascii adjust multiply) 格式: aam 功能: 對(duì)兩個(gè)未組合的十進(jìn)制數(shù)相乘后存于ax中的結(jié)果進(jìn)行調(diào)整,產(chǎn)生一個(gè)未組合的十進(jìn)制數(shù)存在al中.說(shuō)明: 1. 實(shí)際上是兩個(gè)未組合的十進(jìn)制數(shù)字節(jié)相乘,一個(gè)09的數(shù)與另一個(gè)09的數(shù)相乘其積最大為81.為了得到正確的結(jié)果,應(yīng)進(jìn)行如下調(diào)整: 乘積: (ah)<-(al)/10 (al)<-(al)mod10 2. 本指令應(yīng)跟在mul指令后使用,乘積的兩位十進(jìn)制結(jié)果,高位放在ah中,低位放在al中.ah內(nèi)容是m

4、ul指令的結(jié)果被10除的商,即(al)/10,而最后的al內(nèi)容是乘積被10整除的余數(shù)(即個(gè)位數(shù)).aas未組合十進(jìn)制減法調(diào)整指令 aas(ascii adjust for subtraction) 格式: aas 功能: 對(duì)兩個(gè)未組合十進(jìn)制數(shù)相減后存于al中的結(jié)果進(jìn)行調(diào)整,調(diào)整后產(chǎn)生一個(gè)未組合的十進(jìn)制數(shù)數(shù)且仍存于al中.說(shuō)明: 1. 本指令影響標(biāo)志位cf及af. 2. 調(diào)整操作 若(al) and 0fh > 9 或 af=1 則(al)<-(al)-6,(ah)<-(ah)-1,cf<-af,(al)<-(al) and 0fh, 否則(al)<-(al)

5、 and 0fhadc帶進(jìn)位加法指令 adc(addition carry) 格式: adc oprd1,oprd2 功能: oprd1<-oprd1 + oprd2 + cf說(shuō)明: 1. oprd1為任一通用寄存器或存儲(chǔ)器操作數(shù),可以是任意一個(gè)通用寄存器,而且還可以是任意一個(gè)存儲(chǔ)器操作數(shù). oprd2為立即數(shù),也可以是任意一個(gè)通用寄存器操作數(shù).立即數(shù)只能用于源操作數(shù). 2. oprd1和oprd2均為寄存器是允許的,一個(gè)為寄存器而另一個(gè)為存儲(chǔ)器也是允許的,但不允許兩個(gè)都是存儲(chǔ)器操作數(shù). 3. 加法指令運(yùn)算的結(jié)果對(duì)cf、sf、of、pf、zf、af都會(huì)有影響.以上標(biāo)志也稱為結(jié)果標(biāo)志. 4

6、. 該指令對(duì)標(biāo)志位的影響同add指令.add加法指令 add(addition) 格式: add oprd1,oprd2 功能: 兩數(shù)相加說(shuō)明: 1. oprd1為任一通用寄存器或存儲(chǔ)器操作數(shù),可以是任意一個(gè)通用寄存器,而且還可以是任意一個(gè)存儲(chǔ)器操作數(shù). oprd2為立即數(shù),也可以是任意一個(gè)通用寄存器操作數(shù).立即數(shù)只能用于源操作數(shù). 2. oprd1和oprd2均為寄存器是允許的,一個(gè)為寄存器而另一個(gè)為存儲(chǔ)器也是允許的, 但不允許兩個(gè)都是存儲(chǔ)器操作數(shù). 3. 加法指令運(yùn)算的結(jié)果對(duì)cf、sf、of、pf、zf、af都會(huì)有影響.以上標(biāo)志也稱為結(jié)果標(biāo)志.加法指令適用于無(wú)符號(hào)數(shù)或有符號(hào)數(shù)的加法運(yùn)算.a

7、nd邏輯與運(yùn)算指令 and 格式: and oprd1,oprd2 功能: 對(duì)兩個(gè)操作數(shù)實(shí)現(xiàn)按位邏輯與運(yùn)算,結(jié)果送至目的操作數(shù).本指令可以進(jìn)行字節(jié)或字的與運(yùn)算, oprd1<-oprd1 and oprd2.說(shuō)明: 1. 目的操作數(shù)oprd1為任一通用寄存器或存儲(chǔ)器操作數(shù).源操作數(shù)oprd2為立即數(shù),任一通用寄存器或存儲(chǔ)器操作數(shù). 2. 示例: and al,0fh ;(al)<-(al) and 0fh and ax,bx ;(ax)<-(ax) and (bx) and dx,buffersi+bx and betabx,00ffh 注意: 兩數(shù)相與,有一個(gè)數(shù)假則值為假c

8、all過(guò)程調(diào)用指令 call 格式: call oprd 功能: 過(guò)程調(diào)用指令說(shuō)明: 1. 其中oprd為過(guò)程的目的地址. 2. 過(guò)程調(diào)用可分為段內(nèi)調(diào)用和段間調(diào)用兩種.尋址方式也可以分為直接尋址和間接尋址兩種. 3. 本指令不影響標(biāo)志位.cbw字節(jié)擴(kuò)展指令 cbw(convert byte to word) 格式: cbw 功能: 將字節(jié)擴(kuò)展為字,即把a(bǔ)l寄存器的符號(hào)位擴(kuò)展到ah中.說(shuō)明: 1. 兩個(gè)字節(jié)相除時(shí),先使用本指令形成一個(gè)雙字節(jié)長(zhǎng)的被除數(shù). 2. 本指令不影響標(biāo)志位. 3. 示例: mov al,25 cbw idiv byte ptr data1clc處理器控制指令標(biāo)志位操作指令

9、格式: clc ;置cf=0 stc ;置cf=1 cmc ;置cf=(not cf)進(jìn)位標(biāo)志求反 cld ;置df=0 std ;置df1 cli ;置if=0,cpu禁止響應(yīng)外部中斷 sti ;置if=1,使cpu允許向應(yīng)外部中斷 功能: 完成對(duì)標(biāo)志位的置位、復(fù)位等操作.說(shuō)明: 例如串操作中的程序,經(jīng)常用cld指令清方向標(biāo)志使df0,在串操作指令執(zhí)行時(shí),按增量的方式修改呂指針.cld處理器控制指令標(biāo)志位操作指令 格式: clc ;置cf=0 stc ;置cf=1 cmc ;置cf=(not cf)進(jìn)位標(biāo)志求反 cld ;置df=0 std ;置df1 cli ;置if=0,cpu禁止響應(yīng)外

10、部中斷 sti ;置if=1,使cpu允許向應(yīng)外部中斷 功能: 完成對(duì)標(biāo)志位的置位、復(fù)位等操作.說(shuō)明: 例如串操作中的程序,經(jīng)常用cld指令清方向標(biāo)志使df0,在串操作指令執(zhí)行時(shí),按增量的方式修改呂指針.cli處理器控制指令標(biāo)志位操作指令 格式: clc ;置cf=0 stc ;置cf=1 cmc ;置cf=(not cf)進(jìn)位標(biāo)志求反 cld ;置df=0 std ;置df1 cli ;置if=0,cpu禁止響應(yīng)外部中斷 sti ;置if=1,使cpu允許向應(yīng)外部中斷 功能: 完成對(duì)標(biāo)志位的置位、復(fù)位等操作.說(shuō)明: 例如串操作中的程序,經(jīng)常用cld指令清方向標(biāo)志使df0,在串操作指令執(zhí)行時(shí),

11、按增量的方式修改呂指針.cmc處理器控制指令標(biāo)志位操作指令 格式: clc ;置cf=0 stc ;置cf=1 cmc ;置cf=(not cf)進(jìn)位標(biāo)志求反 cld ;置df=0 std ;置df1 cli ;置if=0,cpu禁止響應(yīng)外部中斷 sti ;置if=1,使cpu允許向應(yīng)外部中斷 功能: 完成對(duì)標(biāo)志位的置位、復(fù)位等操作.說(shuō)明: 例如串操作中的程序,經(jīng)常用cld指令清方向標(biāo)志使df0,在串操作指令執(zhí)行時(shí),按增量的方式修改呂指針.cmp比效指令 cmp(compare) 格式: cmp oprd1,oprd2 功能: 對(duì)兩數(shù)進(jìn)行相減,進(jìn)行比較.說(shuō)明: 1. oprd1為任意通用寄存器

12、或存儲(chǔ)器操作數(shù). oprd2為任意通用寄存器或存儲(chǔ)器操作數(shù),立即數(shù)也可用作源操作數(shù)oprd2. 2. 對(duì)標(biāo)志位的影響同sub指令,完成的操作與sub指令類似,唯一的區(qū)別是不將oprd1-oprd2的結(jié)果送回oprd1,而只是比較. 3. 在8088/8086指令系統(tǒng)中,專門提供了一組根據(jù)帶符號(hào)數(shù)比較大小后,實(shí)現(xiàn)條件轉(zhuǎn)移的指令.cmps字符串比較指令 格式: cmps oprd1,oprd2 cmpsb cmpsw 功能: 由si尋址的源串中數(shù)據(jù)與由di尋址的目的串中數(shù)據(jù)進(jìn)行比較,比較結(jié)果送標(biāo)志位,而不改變操作數(shù)本身. 同時(shí)si,di將自動(dòng)調(diào)整.550608018905150255 247524

13、7429說(shuō)明: 1. 其中oprd2為源串符號(hào)地址,oprd1為目的串符號(hào)地址. 2. 本指令影響標(biāo)志位af、cf、of、sf、pf、zf.本指令可用來(lái)檢查二個(gè)字符串是否相同,可以使用循環(huán)控制方法對(duì)整串進(jìn)行比較. 3. 與movs相似,cmps指令也可以不使用操作數(shù),此時(shí)可用指令cmpsb或cmpsw分別表示字節(jié)串比較或字串比較.cmpsb字符串比較指令 格式: cmps oprd1,oprd2 cmpsb cmpsw 功能: 由si尋址的源串中數(shù)據(jù)與由di尋址的目的串中數(shù)據(jù)進(jìn)行比較,比較結(jié)果送標(biāo)志位,而不改變操作數(shù)本身. 同時(shí)si,di將自動(dòng)調(diào)整.說(shuō)明: 1. 其中oprd2為源串符號(hào)地址,

14、oprd1為目的串符號(hào)地址. 2. 本指令影響標(biāo)志位af、cf、of、sf、pf、zf.本指令可用來(lái)檢查二個(gè)字符串是否相同,可以使用循環(huán)控制方法對(duì)整串進(jìn)行比較. 3. 與movs相似,cmps指令也可以不使用操作數(shù),此時(shí)可用指令cmpsb或cmpsw分別表示字節(jié)串比較或字串比較.cmpsw字符串比較指令 格式: cmps oprd1,oprd2 cmpsb cmpsw 功能: 由si尋址的源串中數(shù)據(jù)與由di尋址的目的串中數(shù)據(jù)進(jìn)行比較,比較結(jié)果送標(biāo)志位,而不改變操作數(shù)本身. 同時(shí)si,di將自動(dòng)調(diào)整.說(shuō)明: 1. 其中oprd2為源串符號(hào)地址,oprd1為目的串符號(hào)地址. 2. 本指令影響標(biāo)志位

15、af、cf、of、sf、pf、zf.本指令可用來(lái)檢查二個(gè)字符串是否相同,可以使用循環(huán)控制方法對(duì)整串進(jìn)行比較. 3. 與movs相似,cmps指令也可以不使用操作數(shù),此時(shí)可用指令cmpsb或cmpsw分別表示字節(jié)串比較或字串比較.cwd字?jǐn)U展指令 cwd(convert word to double word) 格式: cwd 功能: 將字?jǐn)U展為雙字長(zhǎng),即把a(bǔ)x寄存器的符號(hào)位擴(kuò)展到dx中.說(shuō)明: 1. 兩個(gè)字或字節(jié)相除時(shí),先用本指令形成一個(gè)雙字長(zhǎng)的的被除數(shù). 2. 本指令不影響標(biāo)志位. 3. 示例: 在b1、b2、b3字節(jié)類型變量中,分別存有8們帶符號(hào)數(shù)a、b、c,實(shí)現(xiàn)(a*b+c)/a運(yùn)算。d

16、aa組合的十進(jìn)制加法調(diào)整指令 daa(decimal adjust for addition) 格式: daa 功能: 對(duì)al中的兩個(gè)組合進(jìn)制數(shù)相加的結(jié)果進(jìn)行調(diào)整,調(diào)整結(jié)果仍放在al中,進(jìn)位標(biāo)志放在cf中.說(shuō)明: 1. 調(diào)整操作如下 (1) 若(al) and 0fh>9 或 af=1,則(al)<-(al)+6,af<-1,對(duì)低四位的調(diào)整. (2) 若(al) and 0f0h>90h 或 cf=1,則(al)<-(al)+60h,cf<-1. 2. 示例: (al)=18h,(bl)=06h add al,bl ; (al)<-(al)+(bl)

17、; (al)=1eh daa ; (al)das組合十進(jìn)制減法調(diào)整指令 das(decimal adjust for subtraction) 格式: das 功能: 對(duì)兩個(gè)組合十進(jìn)制數(shù)相減后存于al中的結(jié)果進(jìn)行調(diào)整,調(diào)整后產(chǎn)生一個(gè)組合的十進(jìn)制數(shù)且仍存于al中.說(shuō)明: 調(diào)整操作 若(al) and 0fh > 9 或 af=1,則(al)<-(al)-6,af=1 若(al) and 0f0h > 90h 或 cf=1,則(al)<-(al)-60,cf=1dec減一指令 dec(decrement by 1) 格式: dec oprd 功能: oprd<-opr

18、d-1說(shuō)明: 1. oprd 為寄存器或存儲(chǔ)器操作數(shù). 2. 這條指令執(zhí)行結(jié)果影響af、of、pf、sf、zf標(biāo)志位,但不影響cf標(biāo)志位. 3. 示例 dec ax dec cl dec word ptrdi dec alfadi+bxdiv無(wú)符號(hào)數(shù)除法指令 div(division) 格式: div oprd 功能: 實(shí)現(xiàn)兩個(gè)無(wú)符號(hào)二進(jìn)制數(shù)除法運(yùn)算.說(shuō)明: 1. 其中oprd為任一個(gè)通用寄存器或存儲(chǔ)器操作數(shù). 2. 字節(jié)相除,被除數(shù)在ax中;字相除,被除數(shù)在dx,ax中,除數(shù)在oprd中. 字節(jié)除法: (al)<-(ax)/oprd,(ah)<-(ax)mod oprd 字除法:

19、 (ax)<-(dx)(ax)/oprd,(dx)<-(dx)(ax) mod oprdesc處理器交權(quán)指令 esc 格式: esc extoprd,oprd 功能: 使用本指令可以實(shí)現(xiàn)協(xié)處理器出放在esc指令代碼中的6位常數(shù),該常數(shù)指明協(xié)處理器要完成的功能. 當(dāng)源操作數(shù)為存儲(chǔ)器變量時(shí),則取出該存儲(chǔ)器操作數(shù)傳送給協(xié)處理器.說(shuō)明: 1. 其中extoprd為外部操作碼,oprd為源操作數(shù). 2. 本指不影響標(biāo)志位.hlt處理器暫停指令 hlt 格式: hlt 功能: 使處理器處于暫時(shí)停機(jī)狀態(tài).說(shuō)明: 1. 本指令不影響標(biāo)志位. 2. 由執(zhí)行hlt引起的暫停,只有reset(復(fù)位)、n

20、mi(非屏蔽中斷請(qǐng)求)、intr(可屏蔽的外部中斷請(qǐng)求)信號(hào)可以使 其退出暫停狀態(tài).它可用于等待中斷的到來(lái)或多機(jī)系統(tǒng)的同步操作.idiv帶符號(hào)數(shù)除法指定 idiv(interger division) 格式: idiv oprd 功能: 這實(shí)現(xiàn)兩個(gè)帶符號(hào)數(shù)的二進(jìn)制除法運(yùn)算.說(shuō)明: 1. 其中oprd為任一通用寄存器或存儲(chǔ)器操作數(shù). 2. 理由與imul相同,只有idiv指令,才能得到符號(hào)數(shù)相除的正確結(jié)果. 3. 當(dāng)被除數(shù)為8位,在進(jìn)行字節(jié)除法前,應(yīng)把a(bǔ)l的符號(hào)位擴(kuò)充至ah中.在16位除法時(shí),若被除數(shù)為16位,則應(yīng)將ax中的符號(hào)位擴(kuò)到dx中.imul帶符號(hào)數(shù)乘法指令 imul(integer m

21、ultiply) 格式: imul oprd 功能: 完成兩個(gè)帶符號(hào)數(shù)的相乘說(shuō)明: 1. 其中oprd為任一通用寄存器或存儲(chǔ)器操作數(shù). 2. mul指令對(duì)帶符號(hào)相乘時(shí),不能得到正確的結(jié)果. 例如: (al)=255 (cl)=255 mul cl (ax)=65025 注意: 這對(duì)無(wú)符號(hào)數(shù)講,結(jié)果是正確的,但對(duì)帶符號(hào)數(shù)講,相當(dāng)于(-1)*(-1)結(jié)果應(yīng)為+1,而65025對(duì)應(yīng)的帶符號(hào)數(shù)為-511,顯然是不正確的.in輸入指令 in 格式: in al,n ;(al)<-(n) in ax,n ;(ax)<-(n+1),(n) in al,dx ;(al)<-(dx) in a

22、x,dx ;(ax)<-(dx)+1,(dx) 功能: 輸入指令說(shuō)明: 1. 其中n為8位的端口地址,當(dāng)字節(jié)輸入時(shí),將端口地址n+1的內(nèi)容送至ah中,端口地址n的內(nèi)容送al中. 2. 端口地址也可以是16位的,但必須將16位的端口地址送入dx中.當(dāng)字節(jié)尋址時(shí),由dx內(nèi)容作端口地址的內(nèi)容送至al中; 當(dāng)輸入數(shù)據(jù)字時(shí),(dx)+1送ah,(dx)送al中,用符號(hào):(ax)<-(dx)+1,(dx)表示.inc加1指令 inc(increment by 1) 格式: inc oprd 功能: oprd<-oprd+1說(shuō)明: 1. oprd 為寄存器或存儲(chǔ)器操作數(shù). 2. 這條指令執(zhí)

23、行結(jié)果影響af、of、pf、sf、zf標(biāo)志位,但不影響cf標(biāo)志位. 3. 示例: inc si;(si)<-(si)+1 inc word ptrbx inc byte ptrbx+di inc cl;(cl)<-(cl)+1 注意: 上述第二,三兩條指令,是對(duì)存儲(chǔ)字及存儲(chǔ)字節(jié)的內(nèi)容加1以替代原來(lái)的內(nèi)容.int軟中斷指令 int 格式: int n 其中n為軟中斷的類型號(hào). 功能: 本指令將產(chǎn)生一個(gè)軟中斷,把控制轉(zhuǎn)向一個(gè)類型號(hào)為n的軟中斷,該中斷處理程序入口地址在中斷向量表的n*4地址 處的二個(gè)存儲(chǔ)器字(4個(gè)單元)中.說(shuō)明: 操作過(guò)程與into指令雷同,只需將10h改為n*4即可.

24、所以,本指令也將影響標(biāo)志位if及tf.into溢出中斷指令 into(interrupt if overflow) 格式: into 功能: 本指令檢測(cè)of標(biāo)志位,當(dāng)of=1時(shí),說(shuō)明已發(fā)生溢出,立即產(chǎn)生一個(gè)中斷類型4的中斷,當(dāng)of0時(shí),本指令不起作用.說(shuō)明: 1. 本指令影響標(biāo)志位if及tf. 2. 本指令可用于溢出處理,當(dāng)of=1時(shí),產(chǎn)生一個(gè)類型4的軟中斷.在中斷處理程序中完成溢出的處理操作.iret中斷返回指令 iret 格式: iret 功能: 用于中斷處理程序中,從中斷程序的斷點(diǎn)處返回,繼續(xù)執(zhí)行原程序.說(shuō)明: 1. 本指令將影響所有標(biāo)志位. 2. 無(wú)論是軟中斷,還是硬中斷,本指令均可使

25、其返回到中斷程序的斷點(diǎn)處繼續(xù)執(zhí)行原程序.ja條件轉(zhuǎn)移指令ja/jnbe 格式: ja/jnbe標(biāo)號(hào) 功能: 為高于/不低于等于的轉(zhuǎn)移指令說(shuō)明: 1. 例如兩個(gè)符號(hào)數(shù)a,b比較時(shí),a>b(即cf=0,zf=0)時(shí)轉(zhuǎn)移.因?yàn)閱我粯?biāo)志位cf=0,只表示a>=b. 2. ja/jnbe是同一條指令的兩種不同的助記符. 3. 該指令用于無(wú)符號(hào)數(shù)進(jìn)行條件轉(zhuǎn)移jae條件轉(zhuǎn)移指令jae/jnb 格式: jae/jnb 標(biāo)號(hào) 功能: 為高于等于/不低于的轉(zhuǎn)移指令說(shuō)明: 1. jae/jnb是同一條指令的兩種不同的助記符. 2. 該指令用于無(wú)符號(hào)數(shù)進(jìn)行條件轉(zhuǎn)移.jb條件轉(zhuǎn)移指令jb/jnae 格式:

26、jb/jnae 標(biāo)號(hào) 功能: 低于/不高于等于時(shí)轉(zhuǎn)移說(shuō)明: 該指令用于無(wú)符號(hào)數(shù)的條件轉(zhuǎn)移jbe條件轉(zhuǎn)移指令jbe/jna 格式: jbe/jna 標(biāo)號(hào) 功能: 低于等于/不高于時(shí)轉(zhuǎn)移說(shuō)明: 該指令用于無(wú)符號(hào)數(shù)的條件轉(zhuǎn)移jc條件轉(zhuǎn)移指令 jc 格式: jc 標(biāo)號(hào) 功能: cf1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: jc為根據(jù)標(biāo)志位cf進(jìn)行轉(zhuǎn)移的指令je條件轉(zhuǎn)移指令je/jz 格式: je/jz標(biāo)號(hào) 功能: zf1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)說(shuō)明: 1. 指令je與jz等價(jià),它們是根據(jù)標(biāo)志位zf進(jìn)行轉(zhuǎn)移的指令 2. je,jz均為一條指令的兩種助記符表示方法jg條件轉(zhuǎn)移指令jg/jnle 格式: jg/jnle 標(biāo)號(hào) 功能:

27、 大于/不小于等于時(shí)轉(zhuǎn)移說(shuō)明: 用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令jge條件轉(zhuǎn)移指令jge/jnl 格式: jge/jnl標(biāo)號(hào) 功能: 大于等于/不小于時(shí)轉(zhuǎn)移說(shuō)明: 用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令jl條件轉(zhuǎn)移指令jl/jnge 格式: jl/jnge標(biāo)號(hào) 功能: 小于/不大于等于時(shí)轉(zhuǎn)移說(shuō)明: 用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令jle條件轉(zhuǎn)移指令jle/jng 格式: jle/jng 標(biāo)號(hào) 功能: 小于等于/不大于時(shí)轉(zhuǎn)移說(shuō)明: 用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令jmp無(wú)條件轉(zhuǎn)移指令jmp 格式: jmp oprd 功能: jmp指令將無(wú)條件地控制程序轉(zhuǎn)移到目的地址去執(zhí)行.當(dāng)目的地址仍在同一個(gè)代碼段內(nèi),稱為段內(nèi)轉(zhuǎn)移;當(dāng)目標(biāo)地

28、址不在同一個(gè)代碼段內(nèi),則稱為段間轉(zhuǎn)移.這兩種情況都將產(chǎn)生不同的指令代碼,以便能正確地生成目的地址,在 段內(nèi)轉(zhuǎn)移時(shí),指令只要能提供目的地址的段 內(nèi)偏移量即夠了;而在段間轉(zhuǎn)移時(shí),指令應(yīng)能提供目的地址的段地址及段內(nèi)偏移地址值.說(shuō)明: 1. 其中oprd為轉(zhuǎn)移的目的地址.程序轉(zhuǎn)移到目的地址所指向的指令繼續(xù)往下執(zhí)行. 2. 本組指令對(duì)標(biāo)志位無(wú)影響. 3. <1> 段內(nèi)直接轉(zhuǎn)移指令: jmp near 標(biāo)號(hào) <2> 段內(nèi)間接轉(zhuǎn)移指令: jmp oprd <3> 段間直接轉(zhuǎn)移指令: jmp far 標(biāo)號(hào) <4> 段間間接轉(zhuǎn)移指令:jmp oprd其中的oprd

29、為存儲(chǔ)器雙字操作數(shù).段間間接轉(zhuǎn)移只能通過(guò)存儲(chǔ)器操作數(shù)來(lái)實(shí)現(xiàn).jna條件轉(zhuǎn)移指令jbe/jna 格式: jbe/jna 標(biāo)號(hào) 功能: 低于等于/不高于時(shí)轉(zhuǎn)移說(shuō)明: 該指令用于無(wú)符號(hào)數(shù)的條件轉(zhuǎn)移jnae條件轉(zhuǎn)移指令jb/jnae 格式: jb/jnae 標(biāo)號(hào) 功能: 低于/不高于等于時(shí)轉(zhuǎn)移說(shuō)明: 該指令用于無(wú)符號(hào)數(shù)的條件轉(zhuǎn)移jnb條件轉(zhuǎn)移指令jae/jnb 格式: jae/jnb 標(biāo)號(hào) 功能: 為高于等于/不低于的轉(zhuǎn)移指令說(shuō)明: 1. jae/jnb是同一條指令的兩種不同的助記符. 2. 該指令用于無(wú)符號(hào)數(shù)進(jìn)行條件轉(zhuǎn)移.jnbe條件轉(zhuǎn)移指令ja/jnbe 格式: ja/jnbe標(biāo)號(hào) 功能: 為高于

30、/不低于等于的轉(zhuǎn)移指令說(shuō)明: 1. 例如兩個(gè)符號(hào)數(shù)a,b比較時(shí),a>b(即cf=0,zf=0)時(shí)轉(zhuǎn)移.因?yàn)閱我粯?biāo)志位cf=0,只表示a>=b. 2. ja/jnbe是同一條指令的兩種不同的助記符. 3. 該指令用于無(wú)符號(hào)數(shù)進(jìn)行條件轉(zhuǎn)移jnc條件轉(zhuǎn)移指令jnc 格式: jnc標(biāo)號(hào) 功能: cf0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: jnc為根據(jù)標(biāo)志位cf進(jìn)行轉(zhuǎn)移的指令jne條件轉(zhuǎn)移指令jne/jnz 格式: jne/jnz 標(biāo)號(hào) 功能: zf0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: 1. 指令jne與jnz等價(jià),它們是根據(jù)標(biāo)志位zf進(jìn)行轉(zhuǎn)移的指令 2. jne,jnz均為一條指令的兩種助記符表示方法jng條件轉(zhuǎn)移

31、指令jle/jng 格式: jle/jng 標(biāo)號(hào) 功能: 小于等于/不大于時(shí)轉(zhuǎn)移說(shuō)明: 用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令jnge條件轉(zhuǎn)移指令jl/jnge 格式: jl/jnge標(biāo)號(hào) 功能: 小于/不大于等于時(shí)轉(zhuǎn)移說(shuō)明: 用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令jnl條件轉(zhuǎn)移指令jge/jnl 格式: jge/jnl標(biāo)號(hào) 功能: 大于等于/不小于時(shí)轉(zhuǎn)移說(shuō)明: 用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令jnle條件轉(zhuǎn)移指令jg/jnle 格式: jg/jnle 標(biāo)號(hào) 功能: 大于/不小于等于時(shí)轉(zhuǎn)移說(shuō)明: 用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令jno條件轉(zhuǎn)移指令jno 格式: jno 標(biāo)號(hào) 功能: of0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: jno是根椐溢出

32、標(biāo)志位of進(jìn)行轉(zhuǎn)移的指令jnp條件轉(zhuǎn)移指令jnp/jpo 格式: jnp/jpo 標(biāo)號(hào) 功能: pf0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: 1. 指令jnp與jpo,它們是根據(jù)奇偶標(biāo)志位pf進(jìn)行轉(zhuǎn)移的指令 2. jnp,jpo均為一條指令的兩種助記符表示方法jns條件轉(zhuǎn)移指令jns 格式: jns 標(biāo)號(hào) 功能: sf0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: jns是根據(jù)符號(hào)標(biāo)志位sf進(jìn)行轉(zhuǎn)移的指令jnz條件轉(zhuǎn)移指令jne/jnz 格式: jne/jnz 標(biāo)號(hào) 功能: zf0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: 1. 指令jne與jnz等價(jià),它們是根據(jù)標(biāo)志位zf進(jìn)行轉(zhuǎn)移的指令 2. jne,jnz均為一條指令的兩種助記符表示方法jo條件轉(zhuǎn)

33、移指令jo 格式: jo 標(biāo)號(hào) 功能: of1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: jo是根椐溢出標(biāo)志位of進(jìn)行轉(zhuǎn)移的指令jp條件轉(zhuǎn)移指令jp/jpe 格式: jp/jpe 標(biāo)號(hào) 功能: pf1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: 1. 指令jp與jpe,它們是根據(jù)奇偶標(biāo)志位pf進(jìn)行轉(zhuǎn)移的指令 2. jp,jpe均為一條指令的兩種助記符表示方法jpe條件轉(zhuǎn)移指令jp/jpe 格式: jp/jpe 標(biāo)號(hào) 功能: pf1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: 1. 指令jp與jpe,它們是根據(jù)奇偶標(biāo)志位pf進(jìn)行轉(zhuǎn)移的指令 2. jp,jpe均為一條指令的兩種助記符表示方法jpo條件轉(zhuǎn)移指令jnp/jpo 格式: jnp/jpo 標(biāo)號(hào) 功能:

34、 pf0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: 1. 指令jnp與jpo,它們是根據(jù)奇偶標(biāo)志位pf進(jìn)行轉(zhuǎn)移的指令 2. jnp,jpo均為一條指令的兩種助記符表示方法js條件轉(zhuǎn)移指令js 格式: js 標(biāo)號(hào) 功能: sf1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說(shuō)明: js是根據(jù)符號(hào)標(biāo)志位sf進(jìn)行轉(zhuǎn)移的指令jz條件轉(zhuǎn)移指令je/jz 格式: je/jz標(biāo)號(hào) 功能: zf1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)說(shuō)明: 1. 指令je與jz等價(jià),它們是根據(jù)標(biāo)志位zf進(jìn)行轉(zhuǎn)移的指令 2. je,jz均為一條指令的兩種助記符表示方法lahf標(biāo)志傳送指令 lahf 格式: lahf 功能: 取flag標(biāo)志寄存器低8位至ah寄存器.(ah)<-(flag)70說(shuō)

35、明: 該指令不影響flag的原來(lái)內(nèi)容,ah只是復(fù)制了原flag的低8位內(nèi)容.lds從存儲(chǔ)器取出32位地址的指令 lds 格式: lds oprd1,oprd2 功能: 從存儲(chǔ)器取出32位地址的指令.說(shuō)明: oprd1 為任意一個(gè)16位的寄存器. oprd2 為32位的存儲(chǔ)器地址. 示例: lds si,abcd lds bx,fastsi lds di,bx 注意: 上面lds di,bx指令的功能是把bx所指的32位地址指針的段地址送入ds,偏移地址送入di.lea有效地址傳送指令 lea 格式: lea oprd1,oprd2 功能: 將源操作數(shù)給出的有效地址傳送到指定的的寄存器中.說(shuō)明:

36、 1. oprd1 為目的操作數(shù),可為任意一個(gè)16位的通用寄存器. oprd2 為源操作數(shù),可為變量名、標(biāo)號(hào)或地址表達(dá)式. 示例: lea bx,data1 lea dx,betabx+si lea bx bx,bp,di 2. 本指令對(duì)標(biāo)志位無(wú)影響。les從存儲(chǔ)器取出32位地址的指令 les 格式: les oprd1,oprd2 功能: 從存儲(chǔ)器取出32位地址的指令.說(shuō)明: oprd1 為任意一個(gè)16位的寄存器. oprd2 為32位的存儲(chǔ)器地址. 示例: les si,abcd les bx,fastsi les di,bx 注意: 上面les di,bx指令的功能是把bx所指的32位地

37、址指針的段地址送入es,偏移地址送入di.lock封鎖總線指令 lock 格式: lock 功能: 指令是一個(gè)前綴,可放在指令的前面,告訴cpu在執(zhí)行該指令時(shí),不允許其它設(shè)備對(duì)總線進(jìn)行訪問(wèn).無(wú)可用信息!用戶可自行添加!lods取字符串元素指令 lods 格式: lods oprd 其中oprd為源字符串符號(hào)地址. 功能: 把si尋址的源串的數(shù)據(jù)字節(jié)送al或數(shù)據(jù)字送ax中去, 并根據(jù)df的值修改地址指針si進(jìn)行自動(dòng)調(diào)整.說(shuō)明: 1. 本指令不影響標(biāo)志位. 2. 當(dāng)不使用操作數(shù)時(shí),可用lods(字節(jié)串)或lodsw(字串)指令.loop循環(huán)控制指令loop 格式: loop 標(biāo)號(hào) 功能: (cx)

38、<-(cx)-1,(cx)<>0,則轉(zhuǎn)移至標(biāo)號(hào)處循環(huán)執(zhí)行, 直至(cx)=0,繼續(xù)執(zhí)行后繼指令.說(shuō)明: 1. 本指令是用cx寄存器作為計(jì)數(shù)器,來(lái)控制程序的循環(huán). 2. 它屬于段內(nèi)short短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字節(jié)的范圍內(nèi).loope循環(huán)控制指令loopz/loope 格式: loopz/loope 標(biāo)號(hào) 功能: (cx)<-(cx)-1,(cx)<>0 且zf1時(shí),轉(zhuǎn)至標(biāo)號(hào)處循環(huán)說(shuō)明: 1. 本指令是用cx寄存器作為計(jì)數(shù)器,來(lái)控制程序的循環(huán). 2. 它屬于段內(nèi)short短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字

39、節(jié)的范圍內(nèi). 3. 以上兩種助記符等價(jià).loopne循環(huán)控制指令loopnz/loopne 格式: loopnz/loopne 標(biāo)號(hào) 功能: (cx)<-(cx)-1,(cx)<>0 且zf0時(shí),轉(zhuǎn)至標(biāo)號(hào)處循環(huán)說(shuō)明: 1. 本指令是用cx寄存器作為計(jì)數(shù)器,來(lái)控制程序的循環(huán). 2. 它屬于段內(nèi)short短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字節(jié)的范圍內(nèi). 3. 以上兩種助記符等價(jià).loopnz循環(huán)控制指令loopnz/loopne 格式: loopnz/loopne 標(biāo)號(hào) 功能: (cx)<-(cx)-1,(cx)<>0 且zf0時(shí),轉(zhuǎn)至標(biāo)號(hào)處

40、循環(huán)說(shuō)明: 1. 本指令是用cx寄存器作為計(jì)數(shù)器,來(lái)控制程序的循環(huán). 2. 它屬于段內(nèi)short短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字節(jié)的范圍內(nèi). 3. 以上兩種助記符等價(jià).loopz循環(huán)控制指令loopz/loope 格式: loopz/loope 標(biāo)號(hào) 功能: (cx)<-(cx)-1,(cx)<>0 且zf1時(shí),轉(zhuǎn)至標(biāo)號(hào)處循環(huán)說(shuō)明: 1. 本指令是用cx寄存器作為計(jì)數(shù)器,來(lái)控制程序的循環(huán). 2. 它屬于段內(nèi)short短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字節(jié)的范圍內(nèi). 3. 以上兩種助記符等價(jià).move數(shù)據(jù)傳送指令 mov 格式: mo

41、v oprd1,oprd2 功能: 本指令將一個(gè)源操作數(shù)送到目的操作數(shù)中,即oprd1<-oprd2.說(shuō)明: 1. oprd1 為目的操作數(shù),可以是寄存器、存儲(chǔ)器、累加器. oprd2 為源操作數(shù),可以是寄存器、存儲(chǔ)器、累加器和立即數(shù). 2. mov 指令以分為以下四種情況: <1> 寄存器與寄存器之間的數(shù)據(jù)傳送指令 <2> 立即數(shù)到通用寄存器數(shù)據(jù)傳送指令 <3> 寄存器與存儲(chǔ)器之間的數(shù)據(jù)傳送指令 <4> 立即數(shù)到存儲(chǔ)器的數(shù)據(jù)傳送 3. 本指令不影響狀態(tài)標(biāo)志位movs字符串傳送指令 movs 格式: movs oprd1,oprd2 mov

42、sb movsw 功能: oprd1<-oprd2.說(shuō)明: 1. 其中oprd2為源串符號(hào)地址,oprd1為目的串符號(hào)地址. 2. 字節(jié)串操作: 若df=0,則作加, 若df=1,則作減. 3. 對(duì)字串操作時(shí): 若df=0,則作加,若df=1,則作減,. 4. 在指令中不出現(xiàn)操作數(shù)時(shí),字節(jié)串傳送格式為movsb、字串傳送格式為movsw. 5. 本指令不影響標(biāo)志位.movsb字符串傳送指令 movs 格式: movs oprd1,oprd2 movsb movsw 功能: oprd1<-oprd2.說(shuō)明: 1. 其中oprd2為源串符號(hào)地址,oprd1為目的串符號(hào)地址. 2. 字節(jié)

43、串操作: 若df=0,則作加, 若df=1,則作減. 3. 對(duì)字串操作時(shí): 若df=0,則作加,若df=1,則作減,. 4. 在指令中不出現(xiàn)操作數(shù)時(shí),字節(jié)串傳送格式為movsb、字串傳送格式為movsw. 5. 本指令不影響標(biāo)志位.movsw字符串傳送指令 movs 格式: movs oprd1,oprd2 movsb movsw 功能: oprd1<-oprd2.說(shuō)明: 1. 其中oprd2為源串符號(hào)地址,oprd1為目的串符號(hào)地址. 2. 字節(jié)串操作: 若df=0,則作加, 若df=1,則作減. 3. 對(duì)字串操作時(shí): 若df=0,則作加,若df=1,則作減,. 4. 在指令中不出現(xiàn)操

44、作數(shù)時(shí),字節(jié)串傳送格式為movsb、字串傳送格式為movsw. 5. 本指令不影響標(biāo)志位.mul無(wú)符號(hào)數(shù)乘法指令 mul(multiply) 格式: mul oprd 功能: 乘法操作.說(shuō)明: 1. oprd為通用寄存器或存儲(chǔ)器操作數(shù). 2. oprd為源操作數(shù),即作乘數(shù).目的操作數(shù)是隱含的,即被乘數(shù)總是指定為累加器ax或al的內(nèi)容. 3. 16位乘法時(shí),ax中為被乘數(shù).8位乘法時(shí),al為被乘數(shù).當(dāng)16位乘法時(shí),32位的乘積存于dx及ax中;8位乘法的16位乘積存于ax中. 4. 操作過(guò)程: 字節(jié)相乘:(ax)<-(al)*oprd,當(dāng)結(jié)果的高位字節(jié)(ah)不等于0時(shí),則cf1、of1.

45、neg取補(bǔ)指令 neg(negate) 格式: neg oprd 功能: 對(duì)操作數(shù)oprd進(jìn)行取補(bǔ)操作,然后將結(jié)果送回oprd.取補(bǔ)操作也叫作求補(bǔ)操作,就是求一個(gè)數(shù)的相反數(shù)的補(bǔ)碼.說(shuō)明: 1. oprd為任意通用寄存器或存儲(chǔ)器操作數(shù). 2. 示例: (al)=44h,取補(bǔ)后,(al)=0bch(-44h). 3. 本指令影響標(biāo)志位cf、of、sf、pf、zf及af.nop空操作指令 nop 格式: nop 功能: 本指令不產(chǎn)生任何結(jié)果,僅消耗幾個(gè)時(shí)鐘周期的時(shí)間,接著執(zhí)行后續(xù)指令,常用于程序的延時(shí)等.說(shuō)明: 本指令不影響標(biāo)志位.not邏輯非運(yùn)算指令 not 格式: not oprd 功能: 完成

46、對(duì)操作數(shù)按位求反運(yùn)算(即0變1,1變0),結(jié)果關(guān)回原操作數(shù).說(shuō)明: 1. 其中oprd可為任一通用寄存器或存儲(chǔ)器操作數(shù). 2. 本指梳令可以進(jìn)行字或字節(jié)非運(yùn)算. 3. 本指令不影響標(biāo)志位.or邏輯或指令 or 格式: or oprd1,oprd2 功能: or指令完成對(duì)兩個(gè)操作數(shù)按位的或運(yùn)算,結(jié)果送至目的操作數(shù)中,本指令可以進(jìn)行字節(jié)或字的或運(yùn)算. oprd1<-oprd1 or oprd2.說(shuō)明: 1. 其中oprd1,oprd2含義與and指令相同,對(duì)標(biāo)志位的影響也與and指令相同. 2. 兩數(shù)相或,有一個(gè)數(shù)為真則值為真.out輸出指令 out 格式: out n,al ;(n)<

47、;-(al) 功能: 輸出指令說(shuō)明: 1. out n,ax ;(n+1),(n)<-(ax) out dx,al ;(dx)<-(al) out dx,ax ;(dx)+1,(dx)<-(ax) 2. 輸入指令及輸出指令對(duì)標(biāo)志位都不影響.pop堆棧操作指令 push和pop 格式: push oprd pop oprd 功能: 實(shí)現(xiàn)壓入操作的指令是push指令;實(shí)現(xiàn)彈出操作的指令是pop指令.說(shuō)明: 1. oprd為16位(字)操作數(shù),可以是寄存器或存儲(chǔ)器操作數(shù). 2. pop指令的操作過(guò)程是: pop oprd:oprd<-(sp),(sp)<-(sp)+2

48、它與壓入操作相反,是先彈出棧頂?shù)臄?shù)頂,然后再修改指針sp的內(nèi)容. 3. 示例: pop ax pop ds pop data1 pop alfabxdi 4. push和pop指令對(duì)狀態(tài)標(biāo)志位沒(méi)有影響.popf標(biāo)志傳送指令 popf 格式: popf 功能: 本指令的功能與pushf相反,在子程序調(diào)用和中斷服務(wù)程序中,往往用pushf指令保護(hù)flag的內(nèi)容,用popf指令將保護(hù)的flag內(nèi)容恢復(fù).說(shuō)明: 如果對(duì)堆棧中的原flag內(nèi)容進(jìn)行修改,如對(duì)tf等標(biāo)志位進(jìn)行修改,然后再?gòu)椈貥?biāo)志位寄存器flag.這是通過(guò)指令修改tf標(biāo)志的唯一方法.push堆棧操作指令 push和pop 格式: push o

49、prd pop oprd 功能: 實(shí)現(xiàn)壓入操作的指令是push指令;實(shí)現(xiàn)彈出操作的指令是pop指令.說(shuō)明: 1. oprd為16位(字)操作數(shù),可以是寄存器或存儲(chǔ)器操作數(shù). 2. push的操作過(guò)程是: (sp)<-(sp)-2,(sp)<-oprd 即先修改堆棧指針sp(壓入時(shí)為自動(dòng)減2),然后,將指定的操作數(shù)送入新的棧頂位置. 此處的(sp)<-oprd,也可以理解為: (ss)*16+(sp)<-oprd 或 ss:sp<-oprdpushf標(biāo)志傳送指令 pushf 格式: pushf 功能: 本指令可以把標(biāo)志寄存器的內(nèi)容保存到堆棧中去rcl循環(huán)移位指令 格

50、式: rol oprd1,count ;不含進(jìn)位標(biāo)志位cf在循環(huán)中的左循環(huán)移位指令. ror oprd1,count ;不含進(jìn)位示志位cf在循環(huán)中的右循環(huán)移位指令. rcl oprd1,count ;帶進(jìn)位的左循環(huán)移位指令. rcr oprd1,count ;帶進(jìn)位的右循環(huán)移位指令.說(shuō)明: 1. 本指令組只影響標(biāo)志cf、of.of由移入cf的內(nèi)容決定,of取決于移位一次后符號(hào)位是否改變,如改變,則of=1. 2. 由于是循環(huán)移位,所以對(duì)字節(jié)移位8次; 對(duì)字移位16次,就可恢復(fù)為原操作數(shù).由于帶cf的循環(huán)移位,可以將cf的內(nèi)容移入, 所以可以利用它實(shí)現(xiàn)多字節(jié)的循環(huán).rcr循環(huán)移位指令 格式: r

51、ol oprd1,count ;不含進(jìn)位標(biāo)志位cf在循環(huán)中的左循環(huán)移位指令. ror oprd1,count ;不含進(jìn)位示志位cf在循環(huán)中的右循環(huán)移位指令. rcl oprd1,count ;帶進(jìn)位的左循環(huán)移位指令. rcr oprd1,count ;帶進(jìn)位的右循環(huán)移位指令.說(shuō)明: 1. 本指令組只影響標(biāo)志cf、of.of由移入cf的內(nèi)容決定,of取決于移位一次后符號(hào)位是否改變,如改變,則of=1. 2. 由于是循環(huán)移位,所以對(duì)字節(jié)移位8次; 對(duì)字移位16次,就可恢復(fù)為原操作數(shù).由于帶cf的循環(huán)移位,可以將cf的內(nèi)容移入,所以可以利用它實(shí)現(xiàn)多字節(jié)的循環(huán). 注意: 以上程序中的指令shr al,

52、cl如改為sar al,cl,雖然最高4位可移入低4位,但最高位不為0,故應(yīng)加入一條指令and al,0fh.否則,若最高位不為0時(shí),將得到錯(cuò)誤結(jié)果.rep重復(fù)前綴的說(shuō)明 格式: rep ;cx<>0 重復(fù)執(zhí)行字符串指令 repz/repe ;cx<>0 且zf1重復(fù)執(zhí)行字符串指令 repnz/repne ;cx<>0 且zf0重復(fù)執(zhí)行字符串指令 功能: 在串操作指令前加上重復(fù)前綴,可以對(duì)字符串進(jìn)重復(fù)處理.由于加上重復(fù)前綴后,對(duì)應(yīng)的指令代碼是不同的,所以指令的功能便具有重復(fù)處理的功能,重復(fù)的次數(shù)存放在cx寄存器中.說(shuō)明: 1. rep與movs或stos串操

53、作指令相結(jié)合使用,完成一組字符的傳送或建立一組相同數(shù)據(jù)的字符串. 2. repz/repe常用與cmps串操作指令結(jié)合使用, 可以完成兩組字符串的比較. 3. repz/repe常與scas指令結(jié)合使用,可以完成在一個(gè)字符串中搜索一個(gè)關(guān)鍵字. 4. repnz/repne與cmps指令結(jié)合使用,表示當(dāng)串未結(jié)束(cx=1)且當(dāng)對(duì)應(yīng)串元素不相同(zf=0)時(shí),繼續(xù)重復(fù)執(zhí)行串比較指令.repe重復(fù)前綴的說(shuō)明 格式: rep ;cx<>0 重復(fù)執(zhí)行字符串指令 repz/repe ;cx<>0 且zf1重復(fù)執(zhí)行字符串指令 repnz/repne ;cx<>0 且zf0

54、重復(fù)執(zhí)行字符串指令 功能: 在串操作指令前加上重復(fù)前綴,可以對(duì)字符串進(jìn)重復(fù)處理.由于加上重復(fù)前綴后,對(duì)應(yīng)的指令代碼是不同的,所以指令的功能便具有重復(fù)處理的功能,重復(fù)的次數(shù)存放在cx寄存器中.說(shuō)明: 1. repz/repe常用與cmps串操作指令結(jié)合使用, 可以完成兩組字符串的比較. 2. repz/repe常與scas指令結(jié)合使用,可以完成在一個(gè)字符串中搜索一個(gè)關(guān)鍵字. 3. repnz/repne與cmps指令結(jié)合使用,表示當(dāng)串未結(jié)束(cx=1)且當(dāng)對(duì)應(yīng)串元素不相同(zf=0)時(shí),繼續(xù)重復(fù)執(zhí)行串比較指令. 4. repnz/repne與scas指令結(jié)合使用,表示串未結(jié)束(cx=1)且當(dāng)關(guān)鍵

55、字與串元素不相同(zf=0)時(shí),繼續(xù)重復(fù)執(zhí)行串搜索指令.repne重復(fù)前綴的說(shuō)明 格式: rep ;cx<>0 重復(fù)執(zhí)行字符串指令 repz/repe ;cx<>0 且zf1重復(fù)執(zhí)行字符串指令 repnz/repne ;cx<>0 且zf0重復(fù)執(zhí)行字符串指令說(shuō)明: 1. repz/repe常用與cmps串操作指令結(jié)合使用, 可以完成兩組字符串的比較. 2. repz/repe常與scas指令結(jié)合使用,可以完成在一個(gè)字符串中搜索一個(gè)關(guān)鍵字. 3. repnz/repne與cmps指令結(jié)合使用,表示當(dāng)串未結(jié)束(cx=1)且當(dāng)對(duì)應(yīng)串元素不相同(zf=0)時(shí),繼續(xù)重復(fù)執(zhí)行串比較指令. 4. repnz/repne與scas指令結(jié)合使用,表示串未結(jié)束(cx=1)且當(dāng)關(guān)鍵字與串元素不相同(zf=0)時(shí),繼續(xù)重復(fù)執(zhí)行串搜索指令.repnz重復(fù)前綴的說(shuō)明 格式: rep ;cx<>0 重復(fù)執(zhí)行字符串指令 repz/repe ;cx<>0 且zf1重復(fù)執(zhí)行字符串指令 repnz/repne ;cx<>0 且zf0重復(fù)執(zhí)行

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論