資源描述:
《《片機指令系統(tǒng)》PPT課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、51單片機共有111條指令,分成6類,它的主要特點是:1、指令較短,最長的只有3個字節(jié),所以執(zhí)行速度快。請看下面3條指令:第2章MCS51單片機的指令系統(tǒng)2、功能強大,8位的乘除運算可用一條指令完成。3、位操作豐富,適于進行開關(guān)量的控制。4、片內(nèi)RAM統(tǒng)一編址,片外存儲器獨立編址,端口操作直接用傳送命令(MOV),使用方便。操作碼85H源操作數(shù)4FH目的操作數(shù)5EHINCA操作碼04H操作碼24H操作數(shù)22HADDA,#22HMOV5EH,4FH指令的構(gòu)成:標號:操作碼目的操作數(shù),源操作數(shù);注釋AAA:MOVA,#20H;將立即數(shù)20H送累加器A1
2、指令中的常用符號:Rn:n=0~7,表示當前工作寄存器R0~R7中的一個Ri:i=0、1,代表R0和R1寄存器中的一個,用作間接尋址寄存器。dir:8位直接尋址的字節(jié)地址(片內(nèi)RAM和SFR)#data:8位立即數(shù),即8位常數(shù)??梢詾?進制(B)、10進制、16進制(H)、字符(‘’)等#data16:表示16位立即數(shù),即16位常數(shù),取值范圍為#0000H~#0FFFFHaddr16:表示16位地址addr11:表示11位地址rel:相對偏移量(為一字節(jié)補碼)用于相對轉(zhuǎn)移指令中bit:位地址,在位地址空間中$:表示當前指令的地址():用來表示存儲單
3、元的內(nèi)容@:間接尋址的前綴A,B,C:分別是累加器、B寄存器和進位標志位/:位操作時的取反前綴22.1尋址方式尋址就是尋找操作數(shù)的地址,在計算機中,就是用來確定操作數(shù),用什么方式從什么地方來找到所需要的操作數(shù)。尋址方式是衡量CPU的性能的重要指標之一,因為尋址方式的快捷就決定了執(zhí)行速度,尋址方式的多樣性就決定了編程的靈活程度。MCS51具有7種尋址方式,它們是:立即、直接、寄存器直接、寄存器間接、變址、相對和位尋址。1、立即尋址指令中直接給出操作數(shù)的尋址方式。在51系列單片機的指令系統(tǒng)中,立即數(shù)用一個前面加“#“號的8位數(shù)(#data,如#30H)
4、或16位數(shù)(#data16,如#2052H)表示。立即尋址中的數(shù),稱為立即數(shù)。立即數(shù)不能做源地址。例如:MOVA,#30HMOVDPTR,#1234H33、寄存器尋址操作數(shù)存放在寄存器中。尋址空間:工作寄存器組和所有的SFR寄存器。A在使用PUSH、POP指令的時候要記作ACC。例如:MOVA,R0;R0→AMULAB;A*B→BAINCDPTR;DPTR+1→DPTRPUSHACC;將ACC壓入堆棧2、直接尋址操作數(shù)的地址直接出現(xiàn)在指令中。尋址空間:51系列片內(nèi)的128字節(jié)的RAM和SFR中的寄存器,對SFR操作的時候,既可使用它的地址,也可以直
5、接使用寄存器名。52系列內(nèi)部RAM有256個字節(jié)時,80H之后的地址空間只能使用寄存器間接的方式來尋址。例如:MOV30H,40HMOVR5,DPH(等價于MOVR5,83H)44、寄存器間址(寄存器間接尋址)操作數(shù)存放在以寄存器內(nèi)容為地址的單元中。尋址空間:片內(nèi)RAM00H-FFH的地址空間和片外數(shù)據(jù)存儲器0000H-FFFFH的地址空間??墒褂玫募拇嫫髦挥蠨PTR和Ri,用它們之前要先把要尋的地址裝入這些寄存器中。凡是間接尋址的寄存器之前都要加@號來和直接尋址的方式區(qū)分??捎糜陂g接尋址的寄存器只有工作寄存器組中的R0和R1,DPTR和SP(SP
6、是隱含的,不出現(xiàn)在指令中)。當采用寄存器間接尋址方式時,由于片內(nèi)的存儲單元只有128個,所以只用R0或R1就夠了;如果是訪問外部存儲單元時,由于有16位地址,所以要先設(shè)置好P2高8位,再通過R0或R1送低8位(通過P0口),或者就由DPTR直接給出16位地址到P2和P0口來實現(xiàn)地址的查找。例如:MOVR0,#20HMOV@R0,A;A→(20H)地址的內(nèi)部RAMMOVXA,@R1;外部RAM(地址P2R1)的內(nèi)容→AMOVX@DPTR,A;A→以DPTR內(nèi)容為地址的外部RAM55、位尋址尋址空間:片內(nèi)RAM中20H~2FH中的128個位地址及SFR
7、中的可位尋址的位地址尋址。通常把進位位C當作位操作的累加器,為直觀起見,當位地址有地址名時,建議選地址名做地址。例如:MOVC,20H;20H位的內(nèi)容送CY標志位,C稱為位累加器。MOV5FH,CANLC,P1.0SETBTR0CLR8CH由于位地址和字節(jié)地址相同,所以在編程的時候注意如何將其區(qū)分,一般的方法有3種:①用地址的別名,別名是唯一的,所以不會弄錯且便于程序的閱讀。②有專門的位操作指令(SETB、CLR、CPL),可憑借位指令的操作碼來區(qū)別。③根據(jù)指令的操作數(shù),是字節(jié)還是位來予以區(qū)分。例如:MOVC,P0.0SETB20HMOV5FH,P
8、1.166、變址尋址主要用于程序存儲器的尋址,所以有專門的MOVC指令。它的尋址方法是將PC或DPTR作為基址,再加上作為