第6講單片機(jī)指令系統(tǒng)_第1頁
第6講單片機(jī)指令系統(tǒng)_第2頁
第6講單片機(jī)指令系統(tǒng)_第3頁
第6講單片機(jī)指令系統(tǒng)_第4頁
第6講單片機(jī)指令系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第6講(2010-09-26)10-11第1學(xué)期第4周汽車單片機(jī)11.指令系統(tǒng)簡介;2.尋址方式;3.指令系統(tǒng);4.匯編語言程序設(shè)計(jì);5.程序設(shè)計(jì)實(shí)例;第3章MCS-51指令系統(tǒng)及匯編語言2復(fù)習(xí)

數(shù)據(jù)傳送類指令P50~57片內(nèi)數(shù)據(jù)傳送指令:MOV片外數(shù)據(jù)傳送指令:MOVX程序存儲(chǔ)器數(shù)據(jù)傳送指令:MOVC數(shù)據(jù)交換指令:XCH,XCHD,SWAP堆棧操作指令:PUSH,POP33.3.2算術(shù)運(yùn)算類指令(24條)單字節(jié)的加、減、乘、除法指令,都是針對(duì)8位二進(jìn)制無符號(hào)數(shù)。執(zhí)行的結(jié)果對(duì)Cy、Ac、OV

三種標(biāo)志位有影響。但增1和減1指令不影響上述標(biāo)志。主要包括

(1)加法(帶、不帶進(jìn)位加法、加1、十進(jìn)制調(diào)整);

(2)減法(帶借位、減1);

(3)乘法;

(4)除法;41加法指令

(1)不帶進(jìn)位加法指令這類指令所完成的操作是把源操作數(shù)(立即數(shù)、直接地址單元內(nèi)容、間接地址單元內(nèi)容、工作寄存器內(nèi)容)與累加器A的內(nèi)容相加,將結(jié)果保存在累加器A中。指令助記符與功能說明如下:5要注意累加器A中的運(yùn)算結(jié)果對(duì)各個(gè)標(biāo)志位的影響:(a)如果位7有進(jìn)位,則置“1”進(jìn)位標(biāo)志Cy,否則清“0”Cy(b)如果位3有進(jìn)位,置“1”輔助進(jìn)位標(biāo)志Ac,否則清“0”Ac(Ac為PSW寄存器中的一位)6(c)如果位6有進(jìn)位,而位7沒有進(jìn)位,或者位7有進(jìn)位,而位6沒有,則溢出標(biāo)志位OV置“1”,否則清“0”O(jiān)V。溢出標(biāo)志位OV的狀態(tài),只有在帶符號(hào)數(shù)加法運(yùn)算時(shí)才有意義。當(dāng)兩個(gè)帶符號(hào)數(shù)相加時(shí),OV=1,表示加法運(yùn)算超出了累加器A所能表示的帶符號(hào)數(shù)的有效范圍7例

執(zhí)行指令:MOVA,#0A9HADDA,#0B8H對(duì)程序狀態(tài)寄存器的影響如圖3.6所示。運(yùn)算結(jié)果:(A)=61H,CY=1,AC=1,OV=1,P=1,(PSW)=0C5H8帶進(jìn)位加法指令與前述加法指令的區(qū)別僅為考慮進(jìn)位位,其他與加法指令相同。(2)帶進(jìn)位加法指令指令助記符與功能說明如下:9(3)增1指令I(lǐng)NCA ;(A)←(A)+1INCdirect ;(direct)←(direct)+1INC@Ri ;((Ri))←((Ri))+1INCRn ;(Rn)←(Rn)+1INCDPTR ;(DPTR)←(DPTR)+110例1

設(shè)(A)=40H,(41H)=29H,則執(zhí)行下列指令:INCA ;(A)←40H+1HINC41H ;(41H)←29H+1H結(jié)果:(A)=41H,(41H)=2AH例2

設(shè)(R0)=56H,片內(nèi)RAM單元(56H)=0FFH,(57H)=50H,則執(zhí)行下列指令:INC@R0 ;(56H)←00HINCR0 ;(R0)←57HINC@R0 ;(57H)←51H結(jié)果:(56H)=00H,(R0)=57H,(57H)=51H例3

執(zhí)行下述指令序列:MOVDPTR,#2FFEH ;(DPTR)←2FFEHINCDPTR ;(DPTR)←2FFFHINCDPTR ;(DPTR)←3000HINCDPTR ;(DPTR)←3001H則(DPTR)=3001H11(4)十進(jìn)制調(diào)整指令用于對(duì)BCD碼十進(jìn)制數(shù)加法運(yùn)算結(jié)果的內(nèi)容修正。

指令格式:DAA兩個(gè)BCD碼按二進(jìn)制相加之后,必須經(jīng)本指令的調(diào)整才能得到正確的壓縮BCD碼的和數(shù)。二進(jìn)制數(shù)的加法運(yùn)算原則并不能適用于十進(jìn)制數(shù)的加法運(yùn)算,有時(shí)會(huì)產(chǎn)生錯(cuò)誤結(jié)果。例如:(a)3+6=90011+0101=1001運(yùn)算結(jié)果正確(b)7+8=150111+1000=1111運(yùn)算結(jié)果不正確(c)9+8=171001+1000=00001C=1結(jié)果不正確12二進(jìn)制數(shù)加法指令不能完全適用于BCD碼十進(jìn)制數(shù)的加法運(yùn)算,對(duì)結(jié)果作有條件的修正——十進(jìn)制調(diào)整

出錯(cuò)原因和調(diào)整方法:

BCD碼只用了了其中的10個(gè),6個(gè)沒用到的編碼。(1010,1011,1100,1101,1110,1111)為無效碼凡結(jié)果進(jìn)入或者跳過無效碼編碼區(qū)時(shí),其結(jié)果就是錯(cuò)誤的。13調(diào)整的方法是把結(jié)果加6調(diào)整,即十進(jìn)制調(diào)整修正。修正方法應(yīng)是:(a)累加器低4位大于9或輔助進(jìn)位位Ac=1,則進(jìn)行低4位加6修正。(b)累加器高4位大于9或進(jìn)位位Cy=1,則進(jìn)行高4位加6修正。(c)累加器高4位為9,低4位大于9,則高4位和低4位分別加6修正。14具體是通過執(zhí)行指令:DAA來自動(dòng)實(shí)現(xiàn)的。例(A)=56H,(R5)=67H,把它們看作為兩個(gè)壓縮的BCD數(shù),進(jìn)行BCD數(shù)的加法。執(zhí)行指令:

ADDA,R5DAA

由于高、低4位分別大于9,所以要分別加6進(jìn)行十進(jìn)制調(diào)整對(duì)結(jié)果進(jìn)行修正。結(jié)果為:(A)=23H,Cy=1

可見,56+67=123,結(jié)果是正確的。152.減法指令(1)帶借位減法指令:(2)減1指令

DECA ;(A)-1→A DECRn ;(Rn)-1→Rn,n=0~7 DECdirect ;(direct)-1→direct DEC@Ri ;((Ri))-1→(Ri),i=0,1減1指令不影響標(biāo)志位。16(1)

乘法指令例1

設(shè)(A)=67H(103),(B)=0ADH(173),執(zhí)行指令:MULAB運(yùn)算結(jié)果:乘積為459BH(17819),(A)=9BH,(B)=45H。另外:OV=1,CY=03乘除運(yùn)算指令MULAB;(A)←乘積低8位,(B)←乘積高8位教材例3-2617A01010000B00110010例3-26:A=50H,B=32H;執(zhí)行MULAB00000000010100000101000000000000000000000101000000000000000000000000A=A0H,B=0FH×18(2)除法指令例1

設(shè)(A)=9AH,(B)=23H,執(zhí)行指令:

DIVAB則(A)=04H,(B)=0EH,OV=00H,CY=00HDIVAB;(A)←商,(B)←余數(shù)193.3.3邏輯運(yùn)算指令(24條)1.雙操作數(shù)指令(1)邏輯與指令邏輯與的規(guī)則定義為:0∧0=00∧1=1∧0=01∧1=1例1設(shè)(A)=0C3H,(R3)=0ADH,執(zhí)行指令“ANLA,R3”。結(jié)果:(A)=81H(10000001B)。指令執(zhí)行過程如下:ANLA,Rn;(A)∧(Rn)→A,n=0~7ANLA,direct;(A)∧(direct)→AANLA,#data;(A)∧#data→AANLA,@Ri;(A)∧((Ri))→A,i=0~1ANLdirect,A;(direct)∧(A)→directANLdirect,#data;(direct)∧#data→direct20(2)邏輯或指令ORLA,Rn;(A)∧(Rn)→A,n=0~7ORLA,direct;(A)∧(direct)→AORLA,#data;(A)∧#data→AORLA,@Ri;(A)∧((Ri))→A,i=0~1ORLdirect,A;(direct)∧(A)→directORLdirect,#data;(direct)∧#data→direct邏輯或的規(guī)則定義為:0∨0=00∨1=1∨0=11∨1=1例1

設(shè)(A)=0C3H,(R3)=0ADH,執(zhí)行指令“ORLA,R3”。結(jié)果:(A)=0EFH(11101111B)。指令執(zhí)行過程如下:21(3)

邏輯異或指邏輯異或的規(guī)則定義為:0⊕0=1⊕1=01⊕0=0⊕1=1XRLA,Rn;(A)∧(Rn)→A,n=0~7XRLA,direct;(A)∧(direct)→AXRLA,#data;(A)∧#data→AXRLA,@Ri;(A)∧((Ri))→A,i=0~1XRLdirect,A;(direct)∧(A)→directXRLdirect,#data;(direct)∧#data→direct例1

設(shè)(A)=0C3H,(R3)=0ADH,執(zhí)行指令“XRLA,R3”。結(jié)果:(A)=6EH(01101110B)。指令執(zhí)行過程如下:222單操作數(shù)邏輯運(yùn)算指令

(1)累加器A清0指令格式:CLR A功能:將00H送入累加器A中。(2)累加器A取反指令格式:

CPLA功能:將累加器A中內(nèi)容取反(將A中內(nèi)容按位取反,即邏輯非運(yùn)算)后再送回累加器A中。23(1)累加器A內(nèi)容循環(huán)左移一位指令格式:RLA功能:將累加器A中的內(nèi)容循環(huán)左移一位。即

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論