匯編語言24邏輯移位指令_第1頁
匯編語言24邏輯移位指令_第2頁
匯編語言24邏輯移位指令_第3頁
匯編語言24邏輯移位指令_第4頁
匯編語言24邏輯移位指令_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、數(shù)據(jù)傳送類;二、算術運算類;三、位操作指令(邏輯運算和移位類);四、串操作類;五、控制轉移類;六、處理器控制類;8086指令系統(tǒng)要求:全面而準確地理解每條指令的功能和應用重點掌握以下指令:AND、XOR、TEST、 SHL、SHR、 RCL、RCR 8086指令系統(tǒng)位操作指令,它們都是按位進行操作的包含邏輯運算類指令和移位指令。位操作類指令以二進制位為基本單位進行數(shù)據(jù)的操作;這是一類常用的指令,都應該特別掌握注意這些指令對標志位的影響邏輯運算和移位類 一、邏輯運算指令 AND/OR/XOR/NOT/TEST 二、移位指令 SHL/SHR/SAL/SAR三、循環(huán)移位指令 ROL/ROR/RC

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

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

4、和自己相異或?(2)XOR指令主要用在什么場合?寄存器清求反某些位邏輯非指令NOT功能:對一個操作數(shù)執(zhí)行按位邏輯非運算NOT reg/mem ;reg/memreg/mem 說明:(1)按位取反,原來是“0”的位變?yōu)椤?”,原來是“1”的位變?yōu)椤?” ;(2)NOT指令是一個單操作數(shù)指令;(3)NOT指令不影響標志位;小結邏輯指令:主要應用:對一個操作數(shù)的某些位進行置位(變?yōu)?)或復位(變?yōu)? )。源操作數(shù)往往是立即數(shù)。實際編程時,需要正確地選取立即數(shù)。例題:邏輯運算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;標志不變例題:邏輯指令應用;AND指令可用于復位某些位(同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測試指令TEST功能:對兩個操作數(shù)執(zhí)行邏輯與運算,結果不回送到目的操作數(shù),但要影響標志位,標志位影響同AND指令。 說明:(1)本條指令通常是用于檢測一些條件是否滿足,但又不希望改變原有的操作數(shù)的情況下。(2)本條指令通常在其后緊跟一條條件轉移指令。例:測試為0或1若要檢測AL中的最低位是否為1,若為1則轉移。test al,01h;測試AL的最低位D0jnz there;標志ZF=0,即D0=1;則程序轉移到there.;否則ZF=1,即D0=0,順序執(zhí)行there: .TEST思考:(1)以上檢測的是最低位,若要檢測AX的最高位是否為1,

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

8、的被移位的操作數(shù),可以是寄存器或存儲器;第二個操作數(shù)表示移位位數(shù),該操作數(shù)為1,表示移動一位;當移位位數(shù)大于1時,則用CL寄存器值表示。對標志位:(1)按照移入的位設置進位標志CF(2)根據(jù)移位后的結果影響SF、ZF、PF(3)對AF沒有定義對OF而言,如果進行一位移動,則按照操作數(shù)的最高符號位是否改變,相應設置溢出標志OF:如果移位前的操作數(shù)最高位與移位后操作數(shù)的最高位不同(有變化),則OF = 1;否則OF = 0。當移位次數(shù)大于1時,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),分成不帶進位和帶進位,分別具有左移或右移操作循環(huán)移位指令(rotate)ROL reg/mem,1/CL ;不帶進位循環(huán)左移ROR reg/mem,1/CL ;不帶進位循環(huán)右移RCL reg/mem,1/CL ;帶進位循環(huán)左移RCR reg/mem,1/CL ;帶進位循環(huán)

10、右移演示演示演示演示說明:循環(huán)移位指令對操作數(shù):同移位指令。對標志的影響:(1)按照指令功能設置進位標志CF(2)不影響SF、ZF、PF、AF(3)對于OF,同移位指令。如果進行一位移動,則按照操作數(shù)的最高符號位是否改變,相應設置溢出標志OF:如果移位前的操作數(shù)最高位與移位后操作數(shù)的最高位不同(有變化),則OF = 1;否則OF = 0。當移位次數(shù)大于1時,OF不確定例:移位實現(xiàn)乘法只要左移以后的數(shù)未超出一個字節(jié)或字的范圍邏輯左移一位相當于無符號數(shù)乘以2邏輯右移一位相當于無符號數(shù)除以2實現(xiàn)位無符號數(shù)X10運算(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:移位實現(xiàn)乘例:32位數(shù)移位;將DX.AX中32位數(shù)值整個左移一位shl ax,1rcl dx,1

溫馨提示

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

評論

0/150

提交評論