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

下載本文檔

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

文檔簡介

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

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

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

(1)加法(帶、不帶進位加法、加1、十進制調整);

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

(3)乘法;

(4)除法;41加法指令

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

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

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

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

執(zhí)行下述指令序列:MOVDPTR,#2FFEH ;(DPTR)←2FFEHINCDPTR ;(DPTR)←2FFFHINCDPTR ;(DPTR)←3000HINCDPTR ;(DPTR)←3001H則(DPTR)=3001H11(4)十進制調整指令用于對BCD碼十進制數加法運算結果的內容修正。

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

出錯原因和調整方法:

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

ADDA,R5DAA

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

可見,56+67=123,結果是正確的。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指令不影響標志位。16(1)

乘法指令例1

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

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

DIVAB則(A)=04H,(B)=0EH,OV=00H,CY=00HDIVAB;(A)←商,(B)←余數193.3.3邏輯運算指令(24條)1.雙操作數指令(1)邏輯與指令邏輯與的規(guī)則定義為:0∧0=00∧1=1∧0=01∧1=1例1設(A)=0C3H,(R3)=0ADH,執(zhí)行指令“ANLA,R3”。結果:(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

設(A)=0C3H,(R3)=0ADH,執(zhí)行指令“ORLA,R3”。結果:(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

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

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

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

溫馨提示

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

評論

0/150

提交評論