匯編語(yǔ)言24邏輯移位指令_第1頁(yè)
匯編語(yǔ)言24邏輯移位指令_第2頁(yè)
匯編語(yǔ)言24邏輯移位指令_第3頁(yè)
匯編語(yǔ)言24邏輯移位指令_第4頁(yè)
匯編語(yǔ)言24邏輯移位指令_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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、一、數(shù)據(jù)傳送類;二、算術(shù)運(yùn)算類;三、位操作指令(邏輯運(yùn)算和移位類);四、串操作類;五、控制轉(zhuǎn)移類;六、處理器控制類;8086指令系統(tǒng)要求:全面而準(zhǔn)確地理解每條指令的功能和應(yīng)用重點(diǎn)掌握以下指令:AND、XOR、TEST、 SHL、SHR、 RCL、RCR 8086指令系統(tǒng)位操作指令,它們都是按位進(jìn)行操作的包含邏輯運(yùn)算類指令和移位指令。位操作類指令以二進(jìn)制位為基本單位進(jìn)行數(shù)據(jù)的操作;這是一類常用的指令,都應(yīng)該特別掌握注意這些指令對(duì)標(biāo)志位的影響邏輯運(yùn)算和移位類 一、邏輯運(yùn)算指令 AND/OR/XOR/NOT/TEST 二、移位指令 SHL/SHR/SAL/SAR三、循環(huán)移位指令 ROL/ROR/RC

2、L/RCR 一、邏輯運(yùn)算指令A(yù)NDNOTXORORTEST1、邏輯與指令A(yù)ND功能:對(duì)兩個(gè)操作數(shù)執(zhí)行按位的邏輯與運(yùn)算,結(jié)果送到目的操作數(shù)AND reg,imm/reg/mem ;regregimm/reg/memAND mem,imm/reg ;memmemimm/reg說(shuō)明:(1)按位的邏輯與運(yùn)算; (2)操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù); (3)注意對(duì)標(biāo)志位的影響P44;思考:(1)某一個(gè)操作數(shù)自己和自己相與?(2)AND指令主要用在什么場(chǎng)合?屏蔽某些位P44的例3-182、邏輯或指令OR功能:對(duì)兩個(gè)操作數(shù)執(zhí)行按位邏輯或運(yùn)算,結(jié)果送到目的操作數(shù)OR reg,imm/reg/mem ;regre

3、gimm/reg/memOR mem,imm/reg ;memmemimm/reg說(shuō)明:(1)按位邏輯或運(yùn)算; (2)OR指令對(duì)操作數(shù)的限制和對(duì)標(biāo)志位的影響;思考:(1)某一個(gè)操作數(shù)自己和自己相邏輯或?(2)OR指令主要用在什么場(chǎng)合?置某些位3、邏輯異或指令XOR功能:對(duì)兩個(gè)操作數(shù)執(zhí)行按位邏輯異或運(yùn)算,結(jié)果送到目的操作數(shù)XOR reg,imm/reg/mem ;regregimm/reg/memXOR mem,imm/reg ;memmemimm/reg說(shuō)明:(1)只有相“異或”的兩位不相同,結(jié)果才是1;(2) XOR指令對(duì)操作數(shù)的限制和對(duì)標(biāo)志位的影響同AND指令;思考:(1)某一個(gè)操作數(shù)自己

4、和自己相異或?(2)XOR指令主要用在什么場(chǎng)合?寄存器清求反某些位邏輯非指令NOT功能:對(duì)一個(gè)操作數(shù)執(zhí)行按位邏輯非運(yùn)算NOT reg/mem ;reg/memreg/mem 說(shuō)明:(1)按位取反,原來(lái)是“0”的位變?yōu)椤?”,原來(lái)是“1”的位變?yōu)椤?” ;(2)NOT指令是一個(gè)單操作數(shù)指令;(3)NOT指令不影響標(biāo)志位;小結(jié)邏輯指令:主要應(yīng)用:對(duì)一個(gè)操作數(shù)的某些位進(jìn)行置位(變?yōu)?)或復(fù)位(變?yōu)? )。源操作數(shù)往往是立即數(shù)。實(shí)際編程時(shí),需要正確地選取立即數(shù)。例題:邏輯運(yùn)算mov al,45h;邏輯與 al=01hand al,31h;CF=OF=0,SF=0、ZF=0、PF=0mov al,45h

5、;邏輯或 al=75hor al,31h;CF=OF=0,SF=0、ZF=0、PF=0mov al,45h;邏輯異或 al=74hxor al,31h;CF=OF=0,SF=0、ZF=0、PF=1mov al,45h;邏輯非 al=0bahnot al;標(biāo)志不變例題:邏輯指令應(yīng)用;AND指令可用于復(fù)位某些位(同0相與),不影響其他位:將BL中D3和D0位清0,其他位不變and bl,11110110B;OR指令可用于置位某些位(同1相或),不影響其他位:將BL中D3和D0位置1,其他位不變or bl, 00001001B;XOR指令可用于求反某些位(同1相異或),不影響其他位:將BL中D3和D

6、0位求反,其他不變xor bl, 00001001B測(cè)試指令TEST功能:對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯與運(yùn)算,結(jié)果不回送到目的操作數(shù),但要影響標(biāo)志位,標(biāo)志位影響同AND指令。 說(shuō)明:(1)本條指令通常是用于檢測(cè)一些條件是否滿足,但又不希望改變?cè)械牟僮鲾?shù)的情況下。(2)本條指令通常在其后緊跟一條條件轉(zhuǎn)移指令。例:測(cè)試為0或1若要檢測(cè)AL中的最低位是否為1,若為1則轉(zhuǎn)移。test al,01h;測(cè)試AL的最低位D0jnz there;標(biāo)志ZF=0,即D0=1;則程序轉(zhuǎn)移到there.;否則ZF=1,即D0=0,順序執(zhí)行there: .TEST思考:(1)以上檢測(cè)的是最低位,若要檢測(cè)AX的最高位是否為1,

7、若為1則轉(zhuǎn)移,如何編程?二、移位指令SHLSALSARSHR其中兩條左移指令對(duì)應(yīng)同一條機(jī)器指令,所以,從機(jī)器指令的角度來(lái)說(shuō),移位指令只有三條。四條指令分成邏輯移位和算術(shù)移位,分別具有左移或右移操作,將操作數(shù)移動(dòng)一位或多位。移位指令(shift)SHL reg/mem,1/CL;邏輯左移,最高位進(jìn)入CF,最低位補(bǔ)0SHR reg/mem,1/CL;邏輯右移,最低位進(jìn)入CF,最高位補(bǔ)0SAL reg/mem,1/CL;算術(shù)左移,最高位進(jìn)入CF,最低位補(bǔ)0SAR reg/mem,1/CL;算術(shù)右移,最低位進(jìn)入CF,但符號(hào)位保持不變SAL與SHL相同演示演示演示說(shuō)明:對(duì)操作數(shù):(1)第一個(gè)操作數(shù)是指定

8、的被移位的操作數(shù),可以是寄存器或存儲(chǔ)器;第二個(gè)操作數(shù)表示移位位數(shù),該操作數(shù)為1,表示移動(dòng)一位;當(dāng)移位位數(shù)大于1時(shí),則用CL寄存器值表示。對(duì)標(biāo)志位:(1)按照移入的位設(shè)置進(jìn)位標(biāo)志CF(2)根據(jù)移位后的結(jié)果影響SF、ZF、PF(3)對(duì)AF沒(méi)有定義對(duì)OF而言,如果進(jìn)行一位移動(dòng),則按照操作數(shù)的最高符號(hào)位是否改變,相應(yīng)設(shè)置溢出標(biāo)志OF:如果移位前的操作數(shù)最高位與移位后操作數(shù)的最高位不同(有變化),則OF = 1;否則OF = 0。當(dāng)移位次數(shù)大于1時(shí),OF不確定。例:移位指令mov cl,4mov al,0f0h;al=f0hshl al,1;al=e0h;CF=1,SF=1、ZF=0、PF=0,OF=0

9、shr al,1;al=70h;CF=0,SF=0、ZF=0、PF=0、OF=1sar al,1;al=38h;CF=0,SF=0、ZF=0、PF=0、OF=0sar al,cl;al=03h;CF=1,SF=0、ZF=0、PF=1 、OF=0三、循環(huán)移位指令ROLRCLRCRROR將操作數(shù)從一端移出的位返回到另一端形成循環(huán),分成不帶進(jìn)位和帶進(jìn)位,分別具有左移或右移操作循環(huán)移位指令(rotate)ROL reg/mem,1/CL ;不帶進(jìn)位循環(huán)左移ROR reg/mem,1/CL ;不帶進(jìn)位循環(huán)右移RCL reg/mem,1/CL ;帶進(jìn)位循環(huán)左移RCR reg/mem,1/CL ;帶進(jìn)位循環(huán)

10、右移演示演示演示演示說(shuō)明:循環(huán)移位指令對(duì)操作數(shù):同移位指令。對(duì)標(biāo)志的影響:(1)按照指令功能設(shè)置進(jìn)位標(biāo)志CF(2)不影響SF、ZF、PF、AF(3)對(duì)于OF,同移位指令。如果進(jìn)行一位移動(dòng),則按照操作數(shù)的最高符號(hào)位是否改變,相應(yīng)設(shè)置溢出標(biāo)志OF:如果移位前的操作數(shù)最高位與移位后操作數(shù)的最高位不同(有變化),則OF = 1;否則OF = 0。當(dāng)移位次數(shù)大于1時(shí),OF不確定例:移位實(shí)現(xiàn)乘法只要左移以后的數(shù)未超出一個(gè)字節(jié)或字的范圍邏輯左移一位相當(dāng)于無(wú)符號(hào)數(shù)乘以2邏輯右移一位相當(dāng)于無(wú)符號(hào)數(shù)除以2實(shí)現(xiàn)位無(wú)符號(hào)數(shù)X10運(yùn)算(1)用乘法指令(2)用移位與加法指令mov ax,xshl ax,1;ax ax2Mov bx,xMov cl,3shl bx,cl ;bx bx8add bx,axMov x,bxmov bx,axmov si,axshl si,1;si2axadd si,ax;si3axmov dx,bxmov cl,03hshl dx,cl;dx8bxsub dx,bx;dx7bxadd dx,si;dx7bx3ax例3.34:移位實(shí)現(xiàn)乘例:32位數(shù)移位;將DX.AX中32位數(shù)值整個(gè)左移一位shl ax,1rcl dx,1

溫馨提示

  • 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)論