微機原理ch03指令第三次課_第1頁
微機原理ch03指令第三次課_第2頁
微機原理ch03指令第三次課_第3頁
微機原理ch03指令第三次課_第4頁
微機原理ch03指令第三次課_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

知識回顧:數(shù)據(jù)傳送類MOV指令的小尋尋尋A立即寄存知識回顧:數(shù)據(jù)傳送類A與片外RAM的傳遞指令

PUSHPOPMOVXA,@DPTRMOVX@DPTR,AMOVCA,@A+DPTRXCHA,RnXCHDSWAP3第三章指令指令指令系統(tǒng)的MCS-51指令系統(tǒng)分類4二.算術操作加、減、乘、除、加1和減1程序狀態(tài)字D7D6D5D4D3D2D1F0P5ADD加法指令(Addition,4條ADDA,(A)+(Rn)ADDA,ADDA,ADDA,(A)+#dataD7有進位時,Cy置D7,D6中1個有進位而另1沒有,OV置6例:加法指設(A)=0C3HADDA,7帶進位的加法指令(AddwithADDCA,(A)+(Rn)+CyADDCA,(A)+(direct)+CyADDCA,(A)+((Ri))+CyADDCA,(A)+#data+Cy8帶進位位的加法指令(4條功能:51單片機是一種8位機,只能做8算,運算的范圍只有0~255,這在實際工作中是的,因此就要進行擴 9000100000110001100001010010000010000

PSW中的CY位了。換言之,CY就相當于是100H然后再做10H30HCY,結果是41H,所以設:1067H存在R1R030A0H存在R3R2中,計算;R0+R2→A和;R1+R3+CY→A和INC增1INCINCINC(direct)+1INCINC(DPTR)+1DA十進制調整指(Decimal跟DAA指令,對結果進行十進制調整。BCD碼中無1111編結果11,正確結果為DA指若(A)3-0>9或AC=1(A)(A)若(A)7-4>9或Cy=1(A)(A)例如:(A)=56H,(R5)=67H,看作縮BCD碼,進行BCD碼加ADDA,

0101

DA

DA

0110 1011+)0110 10010

帶借位的減法指令(SubtractwithSUBBA,SUBBA,SUBBA,(A)-((Ri))-SUBBA,(A)-#data-D7有借位時,Cy置D3有借位時,Ac置D7,D6中1個有進位而另1沒有,OV置例SUBBA,R2DEC減1指令DECDEC(Rn)-DECDEC((Ri))-1不影響PSW乘法和除乘法MULA×B除法指令DIVA/B商:A,余 乘法指令(1條MUL A=4EH,B=5DH,執(zhí)行指令MULAB后,的則是56HOV=P=除法指令(1條DIV ;A÷B的商→A,余數(shù)如:A=11H,B=04H,執(zhí)行指令DIVAB后,CY=P=A累加A累加第三章指令指令指令系統(tǒng)的MCS-51指令系統(tǒng)分類邏輯運算類單單字節(jié)邏輯操作數(shù)運雙字節(jié)邏輯操作數(shù)運單字節(jié)邏輯操作數(shù)運算累加器累加器A清“零”指令累加器A取反指令累加器A循環(huán)左移指令累加器A連同進位位循環(huán)左移指令累加器A循環(huán)右移指令累加器A連同進位位循環(huán)右移指令累加器A清“零CLR ;CLR;(A)累加器A清CLRA;CLRSUBBA,累加器A取反CPL ;CPLMOVA,CPL累加器A循環(huán)左RL ;RL(Rotate–RLA;MOVA,RL 累加器A連同進位位循環(huán)左移指RLCA;RLC(RotateLeftthroughtheRLCRLC

對RLC指令,在CY=0時,RLC相當于乘以累加器A循環(huán)右RR ;RR(RotateRR 累加器A連同進位位循環(huán)右移指RRC

;RRC(RotateRightthroughtheRRCRRC

對RRC指令,在CY=0時,RRC相當于除以雙字節(jié)邏輯操作數(shù)運算邏輯邏輯“或”指邏輯異或”指邏輯“與”運算指令ANLAndLogic指令助記符為ANL,用符號“∧”指令功能是將目的地址單元中的數(shù)和源地址單元中的數(shù)按“位”相“與”,其結果放回目的地址單例:設(A)=A3H(10100011B),(R0)=AAH(10101010B)ANLANLP1=F0H,P1.7至P1.4位狀態(tài)不變,P1.3至P1.0位被清除邏輯“與”運算指令用做清除 某些位小結ANLA,ANLA,

;A指令助記符為ORL,用符號“∨”表示

;(A)←(A) direct,#data指令功能是將目的地址單元中的數(shù)和源地址單元中的數(shù)按“位相“或”,其結果放回目的地址單例:設(A)=0A3H ORLA,(A)=E7H(11101。小結ORLA,ORLA,

;A=不邏輯“異或”運算指令XRL(Exclusive-OrLogic指令助記符為XRL,用符號“⊕”表示,其運算規(guī)則0⊕0=0, 0⊕1=1,

direct,#data“位”例:設(A)=0A3H(10100011B),(R0)=045H(01000l0lB)XRL1010001 01000101110011邏輯“異或”。小結XRLA,#FFHXRLA,#00H;A不 A累加尋《微機原理及應用》課(A)=7AH, 內部RAM(30H)=0A5H,分析下列ANLA,ORL30H,XRLA,CPL

第三章指令指令指令系統(tǒng)的MCS-51指令系統(tǒng)分類控制轉移類指令(17條()。包括以無條件轉移和條相對轉移和絕對長轉移調用與短轉移類指令:AJMP長轉移類指令:LJMP相對轉移指令:SJMP間接轉移指令:JMP控制轉移類指令(17條無條件轉移指令AJMP(AbsoluteJump) 器《微機原理及應用》課PC的跳轉范圍:PCPC的跳轉范圍:PC當前值在同一個2KBPC15PC14PC13PC12PC110000000000PC15PC14PC13PC12PC111111111111例:假定addr11= B,標號tt的地址為1030H.執(zhí)行指令:tt:AJMPaddr11序轉移到地址()去執(zhí)行.解:PC H------0001,0000,0011,0010BPC15110001,0addr11接成16位地址0001,0001,0000,0000B 1100 SJMP實現(xiàn)的程序轉移LOOP: ┇SJMP┇長跳轉指令LJMP(LongLJMP指令執(zhí)行時把指令的第二和第三字節(jié)分別裝入PC的 和低 目標地址可以在64K程 器地址空間的任何位置《微機原理及應用》課長跳轉指令例:在ROM0000H單元存放指令: ;(PC)←3000H023000則上電復位后程序將跳到3000H 間接跳轉指令 由A中8位無符號數(shù)與DPTR的16位數(shù)內容以DPTR內容作為基址,A的內容作變址給A賦予不同的值,即可實現(xiàn)程序的多無條件轉移類指令AJMP,LJMP,SJMP,JMP跳轉的范圍短轉移類指令:AJMP長轉移類指令:LJMP相對轉移指令:SJMP指令構成不AJMP、LJMP后跟的是絕對地而SJMP后跟的是相對地址

轉移范圍-,原則上,所有用SJMP或AJMP的地方都可用LJMP2JMP與前三條指令相比有所間接轉移指令:JMP。指令對A、DPTR和標志位均無影條件轉移 rel(JumpifAis JNZrel(JumpifAisNot

比較不相等轉移指令CJNE:CompareX1toX2,andJumpifNot

A,direct,relA,#data,relRn,#data,rel@Ri,#data,比較前面兩個操作數(shù)的大小,如果它們的值不相等則(整數(shù)),則進位標志位置1“0”。比較不相等轉移指令減1不為0轉移指令DJNZ(DecrementRegisterandJumpifNot把減1與條件轉移兩種 Rn, Rn←(Rn)-1若(Rn)=0,則PC否則PC direct,若(direct)=0,則PC否則PC允許程序員把寄存器Rn或內部RAM的direct單元用作程序循環(huán)計數(shù)器。主要用于控制程序循環(huán)。以減1后是否為“0”作短調用指令ACALL(Absolutesubroutine addrll或ACALLPC←SP←(SP)+1,(SP)←(PCSP←(SP)+1,(SP)←(PCPC10~0←

;標號表示子程序首當前PC壓子程序首地址送PC,實現(xiàn)轉長調用指令LCALL(Longsubroutine addr16LCALLPC←(PC)+3SP←(SP)+1,(SP)←(PCSP←(SP)+1,(SP)←(PCPC←addr功能:在主程序中調用子

當前PC子程序首地址送PC兩者的區(qū)別:對短調用指令,被調用子程 地址必須與調用 《微機原理及應用》課(SP)=30H,PC)=3000H,標號為SUB1子程序首址在2500H執(zhí)行指令:3000H:LCALL則:(SP)= (31H)=

(PC)=2500H,(32H)= PC←(PC)+3PC←(PC)+3SP←(SP)+1,(SP)←(PCSP←(SP)+1,(SP)←

addraddr《微機原理及應用》課返回子程序返回指令RET PC15~8←((SP)),SP← PC7~0←((SP)),SP←

中斷返回指令RETI(Returnfrom PC15~8←((SP)),SP←PC7~0←((SP)),SP←

給PC,實現(xiàn)返回除了實現(xiàn)程序返回外,清除中斷響應的 《微機原理及應用》課空操作指令NOP(No常用于程序中等PC(PC) 第三章指令指令指令系統(tǒng)的MCS-51指令系統(tǒng)分類《微機原理及應用》課位操作指MCS-51單片機的硬件結構中,有一個位處理器(又稱布爾處器),控制程序轉移等。位地址位操作區(qū):內部RAM的20H-2FH單元,128個位單元(位地址空間可位尋址的特殊功能寄存器:字節(jié)地址均可被8整除,如A累加器,在進行位處理CY用作“位累加器” 《微機原理及應用》課位操作指數(shù)據(jù)位MOVC,bit;CMOVbit,C;bit實現(xiàn)位累加器(CY)和其它位地址之間的數(shù)據(jù)位變量CLRCPL

;Cy

CLRCPL

;bitSETBC; SETBbit; 《微機原理及應用》課 ANLC,/bit邏輯或

;C(C)∧;C(C)∧ORLC,bit ;C(C)∨(bit)ORLC,/ ;C(C)∨(/bit)注意:指定的位地址中的值本身并不發(fā) 《微機原理及應用》課判布爾累加器C轉移指判位變量轉移判位變量 轉移指判布爾累加器C轉移JC Jumpifcarryisset),rel:8位相對偏移JNC ;(Jumpifcarryisnot 《微機原理及應用》課JBbit, ;(JumpifdirectbitisJNBbit, ;(Jumpifdirectbitisnot判位變量 轉移指 JBCbit,rel ;(Jumpifdirectbitisset&clearbit) 一、助記符號 方表格列英文還功能模

CJNE-CompareX1X2andjumpifnot

RLC-RotateLeftthroughthe3功能模 單片機的44按功能相似原則為2~3組。這樣,化整為零,各個擊破,實現(xiàn)快 MOVMOVC程 MOVXANLORL

ADDSUBBLCALLRET 希望能起到拋磚引玉的作用,在學習單片機的過程中能找到適合自己的方法來。但是,有了例判斷以下指令的正誤。MOVMOVINCDECCLR答(1)錯誤,寄存器間接尋址只允許使用R0和Rl兩個寄存器。MOVMOVMOVR0,#0D0HMOVA,@R0POPACC(3)不行,因為SFR區(qū)只能用直接尋址不能用間接尋例欲將外部數(shù)據(jù) MOVXMOVMOVXA,@MOVP2,#30HMOVR0,#57HMOVXA,@R0MOVP2,#30HMOVR2、#57HMOVXA,@R2答(1)不行,MCS—51指令系統(tǒng)中沒有該指令。(2))可以。)不行。間接尋址指令,只允許使用和間接尋址。RAM中2100H單元內容的奇MOVDPTR,#2100HMOVXA,@DPTRXRLA, MOVX@DPTR,ANLA,#FFH;A不變ANLA,#00H;A=0ORLAFFHA=0FFHORLA,#00H;A=不變XRLA,#FFH;A=AXRLA,#00H;A不變傳送類指令MOV、MOVX、MOVC等,其區(qū)別?怎樣正確使用MOV類指令 片內的數(shù) 區(qū)(即內部RAM和SFR區(qū)片內RAM區(qū)的各字節(jié)單元,也可 位單請注意這些單元地址都只有8位而非16MOVX類指令專門用 片外64KB的數(shù) 通常與16位DPTR搭配使用,MOVXA,@DPTR和MOVX@DPTR,還可以借用P2口鎖存器和Ri寄存器拼湊的16位地址 A,@RiMOVX@Ri,A,隱含指定P2鎖存器內容為高8位數(shù)據(jù)地MOVC類指令專門用 片外64K的程 空對于這個空間,用戶雖然不能隨意改寫(根本不提供寫指令 A,@A+DPTR和MOVCA,@A+PC怎樣才能避免出 指令剛開始編程時,初學者常常會寫出一 指令,匯編時語錯誤一大堆。其實歸納起來,這些語法錯誤無非是兩①指令表達不合MOV這種錯誤容易檢查出來,只要大家從邏輯思維的角度仔細想想,就能

溫馨提示

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

評論

0/150

提交評論