邏輯運(yùn)算與循環(huán)類指令_第1頁
邏輯運(yùn)算與循環(huán)類指令_第2頁
邏輯運(yùn)算與循環(huán)類指令_第3頁
邏輯運(yùn)算與循環(huán)類指令_第4頁
邏輯運(yùn)算與循環(huán)類指令_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

邏輯運(yùn)算與循環(huán)類指令此類指令共24條,包括或、與、異或、求反、清0、循環(huán)移位。其共同特點是當(dāng)A作目的操作數(shù)(第一操作數(shù))時,影響P位;帶進(jìn)位的移位指令影響CY位,其余都不影響PSW。邏輯運(yùn)算類指令有與、或、異或、清零、取反、移位等24條操作指令:1)邏輯運(yùn)算指令(20條)a.邏輯與指令(6條)ANLb.邏輯或指令(6條)ORLc.邏輯異或指令(6條)XRLd.累加器A清0和取反指令(2條)CLRCPL

2)循環(huán)移位指令(4條)RRRRCRLRLC

1.邏輯“與”運(yùn)算指令(6條)這組指令的功能是:將兩個操作數(shù)的內(nèi)容按位進(jìn)行邏輯與操作,并將結(jié)果送回目的操作數(shù)的單元中?!模芭c”,“有0出0,全1為1”它們都是按位與,其中4條指令的第一操作數(shù)為A,兩條指令的第一操作數(shù)為direct。

“與”指令常用于對某位清0(其余位不受影響)。

例如,將A中的最高位屏蔽(清零)。

ANLA,#7FH;(A)=0×××××××B例:若(A)=3FH,(R1)=68H,執(zhí)行指令“ANLA,R1”以后,(A)=28H。算式如下:(A)00111111

∧(R1)0110100000101000從例中可以看出,若保持某數(shù)的低四位不變,可用二進(jìn)制數(shù)1111同該數(shù)的低四位相與。例:若(A)=39H,執(zhí)行指令“ANLA,#0FH”以后,(A)=09H。算式如下:(A)00111001

∧0000111100001001從例中可知,若保持某數(shù)的低四位不變,高四位全被屏蔽,可用1111與低四位相與,用0000與高四位相與。2.邏輯“或”運(yùn)算指令(6條)這組指令的功能是:將兩個操作數(shù)的內(nèi)容按位進(jìn)行邏輯或操作,并將結(jié)果送回目的操作數(shù)的單元中。

∨--“或”,“有1出1,全0為0”此類指令都是按位相“或”。其中有4條指令的第一操作數(shù)都為A,另外兩條指令的第一操作數(shù)為direct,不影響PSW。若直接尋址I/O端口時,則進(jìn)行讀—修改—寫的邏輯操作,具體是:從該端口鎖存器讀入原始口數(shù)據(jù)的值(而不是讀引腳狀態(tài)),經(jīng)修改后寫到該輸出口去。“或”指令常用于對某位置1(其余位不受影響)。

例如:使P1口的低2位置1,其余位不變,用以下指令實現(xiàn):

ORL P1,#00000011B ;(P1)=××××××11B例:若(A)=39H,執(zhí)行指令“ORLA,#0FH”以后,(A)=3FH。算式如下:(A)00111001

∨0000111100111111從上例可知,若保持某數(shù)的低四位全被置1,高四位不變,可用1111與低四位相或,用0000與高四位相或。3.邏輯“異或”運(yùn)算指令(6條)這組指令的功能是:將兩個操作數(shù)的內(nèi)容按位進(jìn)行邏輯異或操作,并將結(jié)果送回到目的操作數(shù)的單元中。

“異或”,“不同出1,相同為0”同上類似,它們都是按位異或,其中4條指令的第一操作數(shù)為A,另外兩條指令的第一操作數(shù)為direct。對I/O端口操作數(shù),進(jìn)行讀—修改—寫的邏輯操作?!爱惢颉敝噶畛S糜趯δ澄蝗》?其余位不受影響)。例如:使P1口的低2位為0,高2位取反,其余位不變。ANLP1,#11111100B ;先對低2位清0XRLP1,#11000000B ;再對高2位取反

可見要取反的那些位用“1”相“異或”,維持不變的那些位用“0”相“異或”。例:若(A)=5AH,指令“XRLA,#5AH”執(zhí)行后,(A)=0,算式如下:01011010

0101101000000000可以看出,兩個相同的數(shù)相異或,結(jié)果為0。利用這個特性,異或指令可用于判斷兩個字節(jié)中的數(shù)據(jù)是否相等。例:要求如果(30H)=(50H),將PSW中的F0位置1。程序段如下:CLRF0MOVA,30HXRLA,50HJNZOUTSETBF0例:若(A)=5AH,指令“XRLA,#3CH”執(zhí)行后,(A)=66H,再執(zhí)行一次指令“XRLA,#3CH”,(A)=5AH。一個數(shù)a(明文)與另一個數(shù)b(密鑰)相異或得到結(jié)果c(密文),這是加密過程,將c與b再進(jìn)行一次異或所得結(jié)果等于a,實現(xiàn)了信息的還原(即解密)。利用這個特點再加上其他的算法,可以實現(xiàn)信息的簡單加密與解密。4.累加器A清0和取反指令

CLRA;A0CPLA;A逐位取反例:假設(shè)(A)=98H=10011000B,在執(zhí)行指令“CPLA”后,(A)=67H=01100111B。

A7A6…...A1A0A7A6……A1A05.循環(huán)移位指令(4條)(1)循環(huán)左移指令:RLA(2)循環(huán)右移指令:RRA例如:若(A)=06H=00000110B,則在執(zhí)行指令“RLA”后,(A)=0CH=00001100B,相當(dāng)于A的原值乘以2,前提是A的原值為無符號數(shù)且小于80H。若(A)=86H=10000110B,則在執(zhí)行指令“RLA”后,(A)=0DH=00001101B,結(jié)果不是2倍的關(guān)系。例如:若(A)=86H=10000110B,則在執(zhí)行指令“RRA”后,(A)=43H=01000011B,相當(dāng)于對A的內(nèi)容除以2,前提是A的原值為無符號數(shù)且為整數(shù)。(3)帶進(jìn)位的循環(huán)移位指令RLCA;帶進(jìn)位標(biāo)志的循環(huán)左移位RRCA;帶進(jìn)位標(biāo)志的循環(huán)右移位A7A6……A1A0CY循環(huán)移位指令都為單周期指令A(yù)7A6…...

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論