微型計算機技術(shù)與應(yīng)用_第1頁
微型計算機技術(shù)與應(yīng)用_第2頁
微型計算機技術(shù)與應(yīng)用_第3頁
微型計算機技術(shù)與應(yīng)用_第4頁
微型計算機技術(shù)與應(yīng)用_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

12023/12/63.2.3邏輯運算和移位指令1.邏輯運算指令1)AND(Logicaland)邏輯“與”指令2)OR(Lgicalinclusiveor)邏輯“或”指令3)XOR(Logicalexclusiveor)邏輯“異或”指令4)TEST(Testornon-destructivelogicaland)測試指令5)NOT(Logicalnot)邏輯“非”指令特點:對其操作數(shù)按位執(zhí)行邏輯操作,操作數(shù)可以是雙字、字或字節(jié)。影響條件碼:(NOT指令除外)

CF=0F=0,A未定義,SFZFPF(運算結(jié)果) ???源操作數(shù)可以為立即數(shù)、寄存器、存儲器目的操作數(shù)可以為寄存器、存儲器,不能為立即數(shù)源操作數(shù)不是立即數(shù)時,兩操作數(shù)必有一個寄存器第3章Pentium的指令系統(tǒng)22023/12/6

ANDdest,src

;(dest)

(dest∧src)

操作:進行“與”運算,兩位中有一位為0(或二位都為0),則結(jié)果為0,否則為1。

寄存器、存儲器立即數(shù)、寄存器、存儲器1)AND邏輯“與”指令(Logicaland)“與”指令的用途:

(1)清CF,OF

,自己“與”自己.操作數(shù)不變,CF=0,OF=0

例:ANDAL ;結(jié)果:操作數(shù)不變,CF=0,OF=0。

(2)使操作數(shù)中若干位保持不變,若干位與“1”相與;而若干位置為“0“的場合,若干位與“0”相與。

例:

若(AL)=43H ANDAL,0FH ;(AL)=03H,(AL)0~3不變;

;(AL)4~7=00H,屏蔽高4位。

第3章Pentium的指令系統(tǒng)32023/12/6“與”指令應(yīng)用舉例:

例1:將英文小寫字母ASCII轉(zhuǎn)換成大寫。 小寫英文字母ASCII為:‘a(chǎn)’~’z’61H~7AH

大寫英文字母ASCII為:‘A’~’Z’41H~5AH

程序: MOVAL,’z’ ANDAL,0DFH;(AL)=5AH11011111DFH011000010100000161H41H01111010010110107AH5AH第3章Pentium的指令系統(tǒng)42023/12/6

ORdset,src

;(dset)←(dset)(src)

操作:

進行按位“或”運算

兩位操作數(shù)中任一位為1(或都為1),則該位(結(jié)果)=1,否則為0。

∧寄存器、存儲器立即數(shù)、寄存器、存儲器

2)OR邏輯“或”指令(

Lgicalinclusiveor)或指令應(yīng)用用途:(1)清CF,OF,自己與自己“或”,操作數(shù)不變,CF=0,OF=0

例:ORAL;(AL)不變,CF=0(2)使某操作數(shù)若干位保持不變,若干位與“0”或;若干位置1,與“1”或。(3)將兩個操作數(shù)信息組合。若(AL)=03H用OR指令組合使(AL)=33H=’3’。

ORAL,30H;(AL)=33H第3章Pentium的指令系統(tǒng)52023/12/6

XORdset,src

;(dset)

(dset)

(src)

操作:對指令的兩個操作數(shù)進行按位“異或”運算。

二位不相同時為1,相同時為0。

寄存器、存儲器立即數(shù)、寄存器、存儲器3)XOR邏輯“異或”指令(Logicalexclusiveor)用途:對某些特定位求反,某些特定位與“1”

其余位保持不變,保持不變與“0”

。應(yīng)用舉例:例1:將(AL)中的第1、3、5、7位求反

0、2、4、6位保持不變。

MOVAL,0FH XORAL,0AAH第3章Pentium的指令系統(tǒng)62023/12/6例:比較三條(AX)清“0”指令:

XORAX,AX;清AX,清CF。

SUBAX,AX;清AX,清CF。

MOVAX,0;清AX,不影響標志位。

XOR清“0”指令在多字節(jié)累加程序中十分有用。第3章Pentium的指令系統(tǒng)72023/12/6

TESTdest,src

;(dest)∧(src)

操作:二個操作數(shù)相與,結(jié)果不存,只置條件碼。

寄存器、存儲器立即數(shù)、寄存器、存儲器4)TEST測試指令(Testornon_destructivelogicaland)用途:常常用來檢測一些條件是否滿足,但又不希望改變原有的操作數(shù)的情況下,常在此指令后邊加一條條件轉(zhuǎn)移指令。例:判斷A單元中數(shù)據(jù)的奇偶性,設(shè):(A)=0AEH

程序:MOVAL,A ;(AL)=0AEH

TESTAL,01H JZEVEN

;結(jié)果=0為偶數(shù)轉(zhuǎn)EVEN…

奇數(shù)處理

EVEN:偶數(shù)處理

檢測(AL)的最低位是否為0,若為0轉(zhuǎn)EVEN第3章Pentium的指令系統(tǒng)82023/12/6執(zhí)行操作:對標志位無影響。字節(jié)求反:(dest)

0FFH-(dest) 字求反:(dest)

0FFFFH-(dest)

5)NOT邏輯“非”指令(Logicalnot)NOTdest

;操作數(shù)只一個,對操作數(shù)按位求反。邏輯指令應(yīng)用小結(jié):(1)AND指令用來對指令的指定位清“0”。(2)OR指令常用來對某些位置1。(3)XOR指令用在程序開頭,使某個寄存器清“0”。(4)NOT指令對某個數(shù)據(jù)取反,+1成補碼。(5)TEST指令用來檢測指定位為1,還是0。第3章Pentium的指令系統(tǒng)92023/12/6邏輯運算指令102023/12/6

1)非循環(huán)移位(算術(shù)/邏輯移位指令)

SAL,SAR

, SHL,SHR。

2)循環(huán)移位

ROL,

ROR,RCL,RCR。

3)雙精度移位

SHLD,SHRD。將操作數(shù)移動一位或多位,分別具有左移或右移操作將操作數(shù)從一端移出的位返回到另一端形成循環(huán),分成不帶進位和帶進位,分別具有左移或右移操作2.移位指令快速數(shù)據(jù)移位,三個操作數(shù),實現(xiàn)雙左移,雙右移第3章Pentium的指令系統(tǒng)112023/12/6

SHLdest,cnt

;邏輯左移指令,B/W/DW

SALdest,cnt

;算術(shù)左移指令,B/W/DW

0CFdest執(zhí)行操作:相當于無符號數(shù)的×2功能。第3章Pentium的指令系統(tǒng)122023/12/6

cnt:表示移位次數(shù)

cnt≤31,可寫在指令中,也可用CL給出。

cnt>31,用CL存放移位次數(shù),不能是其他寄存器。 如: SALAX,1 MOVCL,4 SALAX,CLSALEAX,CL第3章Pentium的指令系統(tǒng)132023/12/6SHRdest,cnt

;邏輯右移指令,B/WdestCF0執(zhí)行操作:相當于無符號數(shù)的÷2功能。第3章Pentium的指令系統(tǒng)142023/12/6SARdest,cnt

;算術(shù)右移指令,B/Wdest執(zhí)行操作:相當帶符號數(shù)÷2功能,SAR對負數(shù)向下舍入

IDIV指令對負數(shù)向上舍入。第3章Pentium的指令系統(tǒng)152023/12/6用SAR指令與用IDIV指令做除法的區(qū)別:用SAR指令做除法(對負數(shù)向下舍入):

MOVAX,81H ;(AX)=-127 SARAX,1 ;(AX)=-64用IDIV指令做除法(IDIV指令對負數(shù)向上舍入):

MOVAX,81H ;(AX)=-127 MOVCL,2 IDIVCL ;(AL)=-63,(AH)=-11000000111000000第3章Pentium的指令系統(tǒng)162023/12/6ROLdest,cnt

;不含CF循環(huán)左移指令CFdest移動8次后操作數(shù)還原。第3章Pentium的指令系統(tǒng)172023/12/6RORdest,cnt

;不含CF循環(huán)右移指令

右移8次后操作數(shù)還原。CFdest第3章Pentium的指令系統(tǒng)182023/12/6RCLdest,cnt

;含CF循環(huán)左移指令

左移9次后操作數(shù)還原CFdest第3章Pentium的指令系統(tǒng)192023/12/6RCRdest,cnt

;含CF循環(huán)右移指令

右移9次后操作數(shù)還原CFdest第3章Pentium的指令系統(tǒng)202023/12/6循環(huán)移位指令(Rotate)與移位指令(Shift)不同點:循環(huán)移位指令移位后,操作數(shù)中原來各數(shù)位的信息不會丟失,這是移動了位置,必要時可以恢復(fù)。循環(huán)移位指令可以對操作數(shù)進行測試。例:測試(AL)5=?0 MOVCL,3

ROLAL,CL JNCZERO …ZERO: … …10?01000AL212023/12/6

利用帶進位循環(huán)移位指令將兩個寄存器或存儲器單元組合起來一起移位。例:將DX、AX組合起來構(gòu)成32位寄存器向左移一位。如下圖所示:程序:SHLAX,1 RCLDX,132位寄存器向左移一位DXAXCF0222023/12/6思考:

把AL最低位送BL最低位,保持AL不變

AH.AL分別存放著非壓縮BCD碼的兩

溫馨提示

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

評論

0/150

提交評論