2022年單片機指令系統(tǒng)3_第1頁
2022年單片機指令系統(tǒng)3_第2頁
2022年單片機指令系統(tǒng)3_第3頁
2022年單片機指令系統(tǒng)3_第4頁
2022年單片機指令系統(tǒng)3_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章 指令系統(tǒng)

指令系統(tǒng)3/21/202511、加法指令1)不帶進位的加法指令A(yù)DD源操作數(shù)均為累加器A中的內(nèi)容,將目的操作數(shù)與A中的內(nèi)容相加,結(jié)果也放在A中。ADDA,Rn

;(A)←(A)+(Rn)ADDA,@Ri

;(A)←(A)+((Ri))ADDA,direct

;(A)←(A)+(direct)ADDA,#data

;(A)←(A)+#data3/21/20253對標志位的影響:D7產(chǎn)生進位,則(CY)=1,否則(CY)=0D3產(chǎn)生進位,則(AC)=1,否則(AC)=0作為有符號數(shù),溢出(超出-128~+127)則OV=1,運算結(jié)果出錯,否則OV=0,運算結(jié)果正確。結(jié)果A中“1”的個數(shù)為奇數(shù),則(P)=1,否則(P)=03/21/20254例:設(shè)(A)=84H,(30H)=8DH

ADDA,30H則(A)=11H;(CY)=1;(AC)=1;(OV)=1;(P)=0分析:當作為無符號數(shù)時:84H=132,8DH=14184H+8DH=273>256則(CY)=1當作為有符號數(shù)時:84H=-124,8DH=-115

其和為-239,超出-128~+127,

故溢出(OV)=1。

事實上,兩個負數(shù)相加,其結(jié)果(A)=11H=17為正數(shù),不合理,必然溢出。3/21/20255例:MOVA,#0B3HMOV20H,#10HMOVR0,#20HADDA,@R0ADDA,R0ADDA,#10H;(A)=0B3H;(20H)=10H;(R0)=20H;(A)=0B3H+10H=0C3H;(A)=0C3H+20H=0E3H;(A)=0E3H+10H=0F3H3/21/20256例:(A)=42H,(R3)=68H,(CY)=1ADDCA,R3結(jié)果:(A)=0ABH(CY)=0(AC)=0(OV)=1(P)=13/21/202583)加1指令

INCA;(A)←(A)+1

INCRn

;(Rn)←(Rn)+1

INCdirect;(direct)←(direct)+1

INC@Ri

;((Ri))←((Ri))+1

INCDPTR;(DPTR)←(DPTR)+1

該指令是唯一的16位運算指令

注:除INCA和INCACC影響P標志位外,其他均不影響PSW標志位。3/21/20259比較INCAADDA,#01H前者不影響標志位CY、OV、AC后者影響標志位CY、OV、AC前者為1個字節(jié)后者為2個字節(jié)3/21/202510(direct)←(direct)∧(A)MOVA,#01H;MOVR0,#20H(Cy)←(Cy)∨(bit)

ORLC,/bit;D7產(chǎn)生進位,則(CY)=1,否則(CY)=0D7產(chǎn)生進位,則(CY)=1,否則(CY)=0(R2)≠0,則到LOOP處從A中減去源操作數(shù)和借位標志CY,結(jié)果留住A中。作為有符號數(shù),溢出(超出-128~+127)INCdirect;需要判斷DPTR(DPL、DPH)的內(nèi)容,(A)←(A)-((Ri))-(CY)(A)=42H,(R3)=68H,(CY)=1DECRn;2)帶進位加法指令A(yù)DDC例:(R0)=7EH,(7E)=0FFH,(7F)=40H

INC@R0INCR0INC@R0(R0)=7FH,(7EH)=00H,(7FH)=41H3/21/202511常用于訪問連續(xù)地址和循環(huán)程序中循環(huán)數(shù)的控制例:把20H~2FH單元內(nèi)容移入40H~4FH單元中

MOVR0,#20HMOVR1,#40H MOVA,@R0

MOV@R1,AINCR0INCR1 ······MOVA,@R0

MOV@R1,A INCR0INCR116次1組

MOVR0,#20HMOVR1,#40HMOVR2,#10HLOOP:MOVA,@R0

MOV@R1,AINCR0INCR1DJNZR2,LOOP;(R2)←(R2)-1,若(R2)≠0,則到LOOP處RET3/21/2025124)十進制調(diào)整指令以上是十六進制表示的二進制的加法運算,其結(jié)果都是十六進制。十進制(BCD碼)加法的結(jié)果應(yīng)該是十進制,但系統(tǒng)沒有專門的十進制指令,因此只能借助二進制加法指令(把十進制當作十六進制相加),但結(jié)果可能出現(xiàn)A~F,BCD碼中無A~F,所以需要進行十進制調(diào)整,將十進制加法結(jié)果調(diào)整為十進制。DAA3/21/202513例:求67D和56D的和,先看作67H+56H,再調(diào)整

MOVR3,#67HADDA,#56H;(A)=C3H,并不是123H

DAA;(A)=123H,(CY)=1

123H為壓縮BCD碼,表示百位是1,十位為2,個位為3十進制數(shù)相加時,在ADD和ADDC后各加上一條DAA即可3/21/202514例:兩個4位BCD碼相加,一個存于(31H)(30H),另一個存于(33H)(32H),和擬回存于(31H)(30H)中,編程MOVR0,#30HMOVR1,#32HMOVA,@R0ADDA,@R1DAAMOV@R0,AINCR0INCR1MOVA,@R0ADDCA,@R1DAAMOV@R0,A3/21/2025152、減法指令均為帶借位的減法指令1)帶借位的減法指令:從A中減去源操作數(shù)和借位標志CY,結(jié)果留住A中。

SUBBA,Rn

(A)←(A)-(Rn)-(CY)SUBBA,@Ri

;(A)←(A)-((Ri))-(CY)SUBBA,direct

;(A)←(A)-(direct)-(CY)SUBBA,#data

;(A)←(A)-#data-(CY)3/21/202516D7位有借位(不夠減),則(CY)=1,否則(CY)=0;D3位有借位,則(AC)=1,否則(AC)=0;D6位有借位而D7位不借位,或D7位有借位而D6位不借位,則(OV)=1,否則(OV)=0影響奇偶標志P3/21/202517例:(A)=0C9H,(R2)=54H,(CY)=1

SUBBA,R2

結(jié)果:

(A)=74H(CY)=0(AC)=0(OV)=1(P)=0

若為有符號數(shù)0C9H為負數(shù),54H為正數(shù),74H為正數(shù),負數(shù)-正數(shù)=正數(shù),明顯錯誤,故(OV)=13/21/202518注:若只做單字節(jié)減法(8位-8位),即不帶借位減法,應(yīng)先將CY清零:CLRC再執(zhí)行SUBB指令。3/21/2025192)減1指令DECA;(A)←(A)-1DECRn

;(Rn)←(Rn)-1DECdirect;(direct)←(direct)-1DEC@Ri

;((Ri))←((Ri))-1除第一條影響P外,其他對標志位不產(chǎn)生影響3/21/202520注:DPTR沒有減1指令,只有加1指令。若需要DPTR-1,則:需要判斷DPTR(DPL、DPH)的內(nèi)容,若(DPL)≠0,則只需(DPL)-1;若(DPL)=0,則(DPH)-1;3/21/2025213、乘法指令MULAB

(A)×(B)低8位→A高8位→B均為無符號數(shù)(A)←被乘數(shù),(B)←乘數(shù);(A)←乘積低字節(jié),(B)←乘積高字節(jié)若乘積大于0FFH,則OV=1,否則OV=0。CY總是清零3/21/202522例:16位×8位

設(shè)被乘數(shù)高8位在21H,低8位在20H,乘數(shù)在22H;乘積(24位)高、中、低字節(jié)分別在32H、31H、30H中。MOVA,20HMOVB,22HMULABMOV31H,BMOV30H,AMOVA,21HMOVB,22HMULABADDA,31HMOV31H,AMOVA,BADDCA,#00HMOV32H,A3/21/2025234、除法指令DIVAB;(A)÷(B)商→(A)余數(shù)→(B)均為無符號數(shù)(A)←被除數(shù),(B)←除數(shù)(A)←商,(B)←余數(shù)CY總是清零;若(B)=0,則(OV)=1,否則(OV)=0本指令范圍小(0~255),故用處不大3/21/202524例:將A中的二進制數(shù)轉(zhuǎn)換為3位BCD碼,其中百位數(shù)存放于31H,十位數(shù)壓縮后存于30H中。

MOVB,#100;A=0C3H(123D)DIVAB;A=01HMOV31H,A;(31H)=01H,B=17HMOVA,#10H;A=10HXCHA,B;A=17H,B=10HDIVAB;A=02H,B=03HSWAPA;A=20HADDA,B;A=23HMOV30H,A;(32H)=23H3/21/202525三、邏輯運算指令邏輯運算1、“與”運算∧

0∧0=00∧1=1∧0=01∧1=12、“或”運算∨

0∨0=00∨1=1∨0=11∨1=13、“非”運算,取反“A

1=00=14、“異或”運算⊕

0⊕0=1⊕1=01⊕0=0⊕1=13/21/2025261、邏輯“與”指令A(yù)NLA,Rn

(A)←(A)∧(Rn)ANLA,direct;

(A)←(A)∧(direct)ANLA,#data;(A)←(A)∧dataANLA,@Ri

(A)←(A)∧((Ri))ANLdirect,A

;(direct)←(direct)∧(A)ANLdirect,#data;(direct)←(direct)∧data除前四條影響到P標志位外,不影響其他PSW標志位。3/21/202527例:

(P1)=35H使其高位輸出0,低位保持不變。

ANLP1,#0FH

00110101∧)0000111100000101

(P1)=05H,此做法稱為“屏蔽”位。3/21/2025282、邏輯“或”指令ORLA,Rn

;(A)←(A)∨(Rn)ORLA,direct

;(A)←(A)∨(direct)ORLA,#data

;(A)←(A)∨dataORLA,@Ri

;(A)←(A)∨((Ri))ORLdirect,A

;(direct)←(direct)∨(A)ORLdirect,#data;(direct)←(direct)∨data除前四條影響到P標志位外,不影響其他PSW標志位。3/21/202529例:

將A中的低3位送入P1中,并且保持P1中高5位不變。ANLA,#07H;(A)=3DHANLP1,#0F8H;(P1)=67H

ORLP1,A

00000101∨)01100000

01100101

(P1)=65H,此做法稱為“數(shù)據(jù)組合”。3/21/2025303、邏輯異或指令XRLA,Rn

;(A)←(A)⊕(Rn)XRLA,direct

(A)←(A)⊕(direct)XRLA,#data

;(A)←(A)⊕dataXRLA,@Ri

;(A)←(A)⊕((Ri))XRLdirect,A;(direct)←(direct)⊕(A)XRLdirect,#data;(direct)←(direct)⊕data3/21/202531例:設(shè)(P1)=0B4H

XRLP1,#31H

10110100⊕)00110001

10000101=085H

(P1)=085H此稱為“指定位取反”3/21/202532總結(jié):“ANL”常用來屏蔽(清零)某些位,欲清0的位用“0”去“與”,欲保留的位用“1”去“與”“ORL”常用來使某些位置“1”,欲置“1”的位用“1”去“或”,欲保留的位用“0”去“或”“XRL”常用來對某些位取反,欲取反的位用“1”去“異或”,欲保留的位用“0”去“異或”;同時“XRL”還可以用來判斷兩數(shù)是否相等。(A)=11HXRLA,#11H結(jié)果(A)=0,則相等。3/21/2025334、累加器A清零指令CLRA;(A)←00H只影響P標志位3/21/2025345、累加器A取反指令CPLA;(A)←(A)不影響標志位3/21/2025356、移位指令1)左環(huán)移指令RLA不影響標志位例(A)=6CH=01101100B

RLA

(A)=11011000B=0D8Ha7←a0

C3/21/2025362)帶進位的左環(huán)移指令RLCA

不影響標志位例(A)=6CH=01101100B,(C)=1

RLCA

(A)=11011001B=0D9Ha7←a0C3/21/2025373)右環(huán)移指令RRA例

(A)=6CH=01101100B

RRA

(A)=00110110B=36Ha7→a0C3/

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論