




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第3章章 MCS-51指令系統指令系統2022-6-141第第3章章 MCS-51單片機指令系統單片機指令系統第第3章章 MCS-51指令系統指令系統2022-6-142本章教學要求本章教學要求o熟悉MCS-51單片機指令系統的分類、格式;o熟悉MCS-51指令系統的七種尋址方式;o掌握MCS-51指令系統的數據傳送、算術運算、邏輯運算、轉移操作、布爾運算等指令的功能;第第3章章 MCS-51指令系統指令系統2022-6-143本章目錄本章目錄3.1 指令系統簡介3.1.1 指令系統的分類3.1.2 指令格式3.1.3 指令中的常用符號3.1.4 尋址方式3.2 指令系統指令系統3.2.1
2、數據傳送指令數據傳送指令3.2.2 算術運算指令算術運算指令3.2.3 邏輯運算指令邏輯運算指令3.2.4 控制轉移指令控制轉移指令3.2.5 位操作指令位操作指令習題與思考題習題與思考題第第3章章 MCS-51指令系統指令系統2022-6-1443.1 3.1 指令系統簡介指令系統簡介指令系統 計算機所有指令的集合,稱為該計算機的指令系統,它是表征計算機性能的重要標志。每種計算機都有它自己特有的指令系統。指令是指計算機執行某種操作(如傳送數據、做算術運算等)的命令。第第3章章 MCS-51指令系統指令系統2022-6-145要讓計算機工作,就得向計算機發出指令。o指令的格式是機器碼指令格式,
3、如:如:11100101B 11100101B ,即數字格式。,即數字格式。o另一種指令格式,即匯編指令格式,如:如:MOV P1, #5BHMOV P1, #5BH-指令的兩種格式指令的兩種格式3.1 3.1 指令系統簡介指令系統簡介第第3章章 MCS-51指令系統指令系統2022-6-146-MCS-51-MCS-51匯編語言指令格式匯編語言指令格式標號段: 操作碼段 操作數段 ;注釋段 操作數1 ,操作數23.1 3.1 指令系統簡介指令系統簡介第第3章章 MCS-51指令系統指令系統2022-6-147-特點特點1) 指令執行時間短。只需1個機器周期的指令有64條,2個機器周期的指令有
4、45條,而4個機器周期的指令僅有2條(既乘法和除法指令)。2) 指令字節少。單字節指令有49條,雙字節指令有46條,三字節指令有16條。3) 位操作指令極為豐富,這體現了MCS-51單片機具有面向控制的特點。3.1 3.1 指令系統簡介指令系統簡介第第3章章 MCS-51指令系統指令系統2022-6-1483.1.1 3.1.1 指令系統的分類指令系統的分類 MCS-51單片機能夠識別并執行的指令共有111條。按指令所占字節數、指令執行時間和指令功能進行分類。 1按指令所占字節數分類 1) 單字節指令(49條) 2) 雙字節指令(46條) 3) 三字節指令(16條)第第3章章 MCS-51指令
5、系統指令系統2022-6-1492按指令執行時間分類按指令執行時間分類1) 單周期指令(65條)2) 雙周期指令(44條)3) 四周期指令(2條)3.1.1 3.1.1 指令系統的分類指令系統的分類第第3章章 MCS-51指令系統指令系統2022-6-14101) 數據傳送類指令(29條)2) 算術運算類指令(24條)3) 邏輯運算類指令(24條)4) 控制轉移類指令(17條)5) 位操作類指令(17條)3.1.1 3.1.1 指令系統的分類指令系統的分類第第3章章 MCS-51指令系統指令系統2022-6-14113.1.2 3.1.2 指令格式指令格式 指令由操作碼和操作數組成。操作碼用來
6、規定要執行的操作的性質,操作數為指令的操作提供數據和地址。1指令的基本格式符號地址: 操作碼 操作數1 ,操作數2 ,操作數3 ;注釋 其中符號地址和操作碼之間用“:”作為分隔符,也可再加上若干空格。操作碼和操作數之間用空格作為分隔符。操作數之間用“,”作為分隔符。注釋之前用“;”作為分隔符。第第3章章 MCS-51指令系統指令系統2022-6-1412一條指令必須在一行中寫完。例如:MAIN:MOV A,#10H ;主程序段nMAIN為符號地址;nMOV為操作碼;nA、#10H為二個操作數;n最后是注釋。 指令在送入計算機執行之前,必須先轉換成機器語言形式。轉換成機器語言的過程稱為匯編,匯編
7、有機器匯編和手工匯編兩種方法。3.1.2 3.1.2 指令格式指令格式第第3章章 MCS-51指令系統指令系統2022-6-14133.1.3 3.1.3 指令中的常用符號指令中的常用符號 為了便于閱讀指令,MCS-51指令助記符中的一些常用符號約定如下。nRn:表示當前工作寄存器R0R7中的一個。nRi:表示寄存器間接尋址,常作間接尋址的地址指針。其中Ri代表R0和R1寄存器中的一個。nDPTR:表示以DPTR為數據指針的間接尋址,用于對外部64RAM/ROM尋址。ndirect:表示內部數據存貯器單元的地址及特殊功能寄存器SFR的地址,對SFR而言,既可使用它的物理地址,也可直接使用它的名
8、字。第第3章章 MCS-51指令系統指令系統2022-6-1414o#data:表示8位立即數,即8位常數,取值范圍為#00H#0FFH。odata16:表示16位立即數,即16位常數,取值范圍為#0000H#0FFFFH。oaddr16:表示16位地址。oaddr11:表示11位地址。orel:用補碼形式表示的地址偏移量,取值范圍為-128+127。obit:表示內部RAM和SFR中的具有位尋址功能的位地址。3.1.3 3.1.3 指令中的常用符號指令中的常用符號第第3章章 MCS-51指令系統指令系統2022-6-1415o:表示間接尋址寄存器或基址寄存器的前綴符號。o$:表示當前指令的地
9、址。o/:位操作數的前綴,表示對該位操作數取反,如:/bit。o(x):表示存儲單元x的內容。o(x):表示以寄存器或存儲單元x的內容作為地址的存儲單元的內容。o:表示數據傳送方向。3.1.3 3.1.3 指令中的常用符號指令中的常用符號第第3章章 MCS-51指令系統指令系統2022-6-14163.1.4 3.1.4 尋址方式尋址方式 如何找到參與運算的操作數據或數據所在的地址稱為尋址方式。所以尋址方式是在地址范圍內如何找到所需要的操作數的地址。 MCS-51指令系統的尋址方式主要有立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、基址加變址尋址、相對尋址和位尋址等七種。第第3章章 MCS-
10、51指令系統指令系統2022-6-1417 立即尋址是將操作數直接寫在指令中,作為指令的一部分存放在代碼段里,位置在程序存儲器中。立即尋址中的操作數,稱為立即數。例如:MOV A, #30H ;30HA3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-14182.2.直接尋址直接尋址 直接尋址是將操作數的地址直接存放在指令中。這種尋址方式的操作數指的是內部數據存儲器中存放數據的地址,或存放數據的一個特殊功能寄存器地址。例如:MOV A, 30H ;(30H)A3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6
11、-1419直接尋址方式可訪問的范圍直接尋址方式可訪問的范圍1) 特殊功能寄存器。這部分存儲單元既可以用單元地址給出,也可以用寄存器符號的形式給出。如:MOV A, 90H 或 MOV A, P1為同一條指令的兩種寫法(特殊功能寄存器只能用直接尋址方式訪問)。2) 內部數據存儲器的低128個字節單元。直接以單元地址的形式給出對于8032/8052等單片機,其內部高128字節RAM(80HFFH)不能用直接尋址方式訪問。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-14203) 位地址空間片內RAM中20H2FH中的128個位地址,以及SFR中的11
12、個可進行位尋址的寄存器中的位地址(可位尋址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0P3)。4) 在一些程序控制指令中,可采用直接尋址方式提供程序轉移的目標地址。3.1.4 3.1.4 尋址方式尋址方式直接尋址方式可訪問的范圍直接尋址方式可訪問的范圍第第3章章 MCS-51指令系統指令系統2022-6-1421-寄存器尋址寄存器尋址寄存器尋址是指操作數存放在寄存器中,并且尋址時的寄存器已隱含在指令的操作碼中。例如:MOV A, R53.1.4 3.1.4 尋址方式尋址方式3.寄存器尋址寄存器尋址第第3章章 MCS-51指令系統指令系統2022-6-1422寄存器
13、尋址方式的尋址范圍:(1) 4個工作寄存器組共32個通用寄存器(在指令中只能使用當前寄存器組)(2) 部分特殊功能寄存器。如A,B,DPTR。-寄存器尋址寄存器尋址3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-1423-寄存器尋址寄存器尋址4.寄存器間接尋址寄存器間接尋址是指操作數據存放在以寄存器內容為地址的單元中。如:MOV A, R0 ;(R0)A指令功能為將R0所指出的內部RAM單元內容送入累加器A中,執行過程如圖所示。圖中設R0=60H。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-1424
14、寄存器間接尋址的尋址范圍:寄存器間接尋址的尋址范圍:1) 內部低128字節單元(只能使用R0、R1作間址寄存器)。2) 外部數據存儲器(64KB字節,使用DPTR作間址寄存器。另外,外部低128B單元也可用R0、R1作間址寄存器尋址)。3) 在堆棧操作指令(PUSH、POP)中,以堆棧指針SP作間址寄存器,尋址空間為片內RAM。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-1425-基址變址尋址基址變址尋址基址變址尋址是指操作數存放在以變址寄存器和基址寄存器的內容相加形成的數為地址的單元中。其中累加器A作變址寄存器、程序計數器PC或寄存器DPTR
15、作基址寄存器?;芳幼冎穼ぶ贩绞匠S糜诓楸聿僮?。如:MOVC A, A+PC ;PC+1PC,(A+PC)AMOVC A, A+DPTR ;(A+DPTR)A3.1.4 3.1.4 尋址方式尋址方式5.基址變址尋址基址變址尋址第第3章章 MCS-51指令系統指令系統2022-6-1426相對尋址是將程序計數器PC的當前值與指令第二字節給出的偏移量相加,從而形成轉移的目標地址。例如:JC 80H ;C=1則跳轉-相對尋址相對尋址3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-1427-位尋址位尋址位尋址是指對片內RAM中20H2FH中的128個位地址
16、,以及SFR中的11個可進行位尋址的寄存器中的位地址尋址(可位尋址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0P3)。例如:MOV C, 20H此指令是將RAM中位尋址區20H位地址中的內容,送給位累加器Cy。位尋址指令不同于字節地址尋址指令,例如:MOV A, 20H 3.1.4 3.1.4 尋址方式尋址方式7.位尋址位尋址第第3章章 MCS-51指令系統指令系統2022-6-1428-位尋址的表示形式位尋址的表示形式1) 直接使用位地址包括位尋址區的位地址包括位尋址區的位地址00H7FH和部分特殊功能寄存器的和部分特殊功能寄存器的位地址。例如,位地址。例如,P
17、SW寄存器第寄存器第2位的位地址為位的位地址為D2H。2) 位名稱表示法專用寄存器中的一些尋址位是有符號名的,對其進行位尋址專用寄存器中的一些尋址位是有符號名的,對其進行位尋址時可用其符號名,例如,時可用其符號名,例如,PSW寄存器的第寄存器的第2位可用位可用OV表示。表示。3) 單元地址加位表示法例如,例如,2F單元的第單元的第1位,可表示為位,可表示為2FH.1。再如,再如,D0H單元(單元(PSW)的第)的第2位,可表示為位,可表示為D0H.2。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-14294) 專用寄存器名稱加位表示法例如,例如,
18、PSW寄存器的第寄存器的第2位可表示為:位可表示為:PSW.2。對于可位尋址的特殊功能寄存器,上面對于可位尋址的特殊功能寄存器,上面4種表示法是等種表示法是等效的。以讀取效的。以讀取PSW第二位為例的第二位為例的4種位尋址指令如下:種位尋址指令如下:MOV C, 0D2H ;直接使用位地址尋址直接使用位地址尋址MOV C, OV ;使用位名稱尋址使用位名稱尋址MOV C, 0D0H.2 ;使用單元地址加位表示法尋址使用單元地址加位表示法尋址MOV C, PSW.2 ;使用專用寄存器名稱加位表示法尋址使用專用寄存器名稱加位表示法尋址3.1.4 3.1.4 尋址方式尋址方式-位尋址的表示形式位尋址
19、的表示形式第第3章章 MCS-51指令系統指令系統2022-6-1430在MCS-51單片機的指令系統中,指令對哪一個存儲器空間進行操作,是由指令的操作碼和尋址方式確定的。1)對程序存儲器只能采用立即尋址和基址加變址尋址方式;2)對特殊功能寄存器只能采用直接尋址方式,不能采用寄存器間接尋址; 3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-14313)對8032/8052等單片機內部RAM的高128個字節(80HFFH),只能采用寄存器間接尋址,不能使用直接尋址方式;4)對位操作指令只能對位尋址區操作;5)外部擴展的數據存儲器只能用MOVX指令訪問
20、;6)內部RAM的低128個字節(00H7FH)既能用直接尋址,也能用間接尋址。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-1432存儲空間對應的尋址方式3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統指令系統2022-6-14333.2 3.2 指令系統指令系統MCS-51的數據傳送指令共有28條。助記符有MOV、MOVC、MOVX、XCH、XCHD、PUSH、POP。數據傳送指令一般的操作是把源操作數傳送到目的操作數,指令執行完成后,源操作數不變,目的操作數等于源操作數。如果要求在進行數據傳送時,目的操作數不丟失,則
21、不能用直接傳送指令,而采用交換型的數據傳送指令。數據傳送指令不影響標志Cy、AC和OV,但可能會對奇偶標志P有影響。第第3章章 MCS-51指令系統指令系統2022-6-1434-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1435-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1436助記符 功能說明MOV A, Rn ;(Rn)ARn中的內容送到累加器A中MOV A, direct ;(direct) A直接地址單元中的內容送到 累加器A中MOV A, Ri ;(Ri) A Ri內容指向的地址單元中的 內容送到累加器A中MO
22、V A, #data;dataA立即數送到累加器A中功能:將源操作數指定內容送到累加器A中。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1437助記符功能說明MOV Rn, A ;(A)Rn 累加器A中的內容送到寄存 器Rn中MOV Rn, direct;(direct) Rn直接尋址單元中的 內容送到寄存器Rn中MOV Rn, #data;dataRn 立即數直接送到寄存器 Rn中功能:將源操作數指定的內容送到所選定的工作寄存器Rn中。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1438助記符 功能說明MOV direc
23、t, A ;(A)direct 累加器A中的內容送到直接地址單元中MOV direct, Rn;(Rn)direct寄存器Rn中的內容送到直接地址單元中MOV direct1, direct2 ;(direct2) direct1 直接地址單元2中的內容送到直接地址1中MOV direct, Ri ;(Ri) direct以寄存器Ri中的內容為地址的單元中內容送到直接地址單元中MOV direct,#data ;datadirect 立即數送到直接地址單元中-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1439功能:將源操作數指定的內容送到由直接地址指出的片內
24、存儲單元中。如:MOV 20H, A;累加器A中的內容送到20H直接地址單元中MOV 20H, R1 ;寄存器R1中的內容送到20H直接地址單元中MOV 20H, 30H;30H直接地址單元中的內容送到20H直接地址單元中MOV 20H, R1;以寄存器R1中的內容為地址的單元中內容送到20H直接地址單元中MOV 20H, #34H ;立即數送到20H直接地址單元中MOV P2, #34H ;立即數送到P2直接地址單元中-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1440助記符 功能說明MOV Ri, A;(A)(Ri) 累加器A中內容送到以Ri中內容為 地
25、址的RAM單元中MOV Ri, direct ;(direct) (Ri)直接地址單元中內容送到以Ri中內容為地址的RAM單元中MOV Ri, #data ;data(Ri) 立即數送到以Ri中內容 為地址的RAM單元中-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1441功能:將源操作數指定的內容送到以R0或R1為地址指針的片內RAM存儲單元中。如:MOV R0, A;累加器A中內容送到以R0中內容為 地址的RAM單元中MOV R1, 20H;20H單元中內容送到以R1中內容為 地址的RAM單元中MOV R0, #34H ;立即數34H送到以R0中內容為地
26、址的RAM單元中-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1442助記符 功能說明MOV DPTR, #data16;dataHDPH,dataLDPL ;16位常數的高8位送到DPH,低8位送到DPL功能:將一個16位的立即數送到DPTR中去。其中高8位送入DPH,低8位送入DPL。如:MOV DPTR, #1234H;指令執行后DPH中的值為 12H,DPL中的值為34H-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1443如果我們分別向DPH和DPL送數,則結果也一樣。如下面兩條指令:MOV DPH, #12HMOV
27、 DPL, #34H就相當于執行了MOV DPTR, #1234H。MCS-51是一種8位機,這是唯一的一條16位立即數傳遞指令。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1444助記符 功能說明MOVX A, Ri ;(Ri) A寄存器Ri指向的片外RAM單元中的內容送到累加器A中MOVX Ri, A ;A(Ri)累加器A中內容送到寄存器Ri指向的片外RAM單元中MOVX A, DPTR ;(DPTR) A數據指針指向的片外 RAM單元中的內容送到累加器A中MOVX DPTR, A ;(A)(DPTR)累加器A中內容送到數 據指針指向的片外RAM單元中-
28、傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1445功能:在MCS-51中,與外部存儲器RAM打交道的只可以是A累加器。所有需要送入外部RAM的數據必須通過A傳送,而所有要讀入的外部RAM中的數據也必須通過A讀入。在此我們可以看出內外部RAM的區別,內部RAM間可以直接進行數據傳遞,而外部RAM則不行。例如,要將外部RAM中某一單元(假設為0100H單元的數據)送入另一個單元(假設為0200H單元),則必須先將0100H單元中的內容讀入A,然后再送到0200H單元中去。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1446要讀
29、或寫外部RAM,必須要知道16位的RAM地址。在后兩條指令中,地址是被直接放在DPTR中的。而前兩條指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提供低8位地址,此時,高8位地址要由P2口來提供。使用時應先將要讀或寫的地址送入DPTR或Ri(高8位地址送到P2口)中,然后再用讀/寫指令。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統指令系統2022-6-1447例3-1 將外部RAM的100H單元中內容送入外部RAM的200H單元中。MOVDPTR, #0100HMOVXA, DPTRMOVDPTR, #0200HMOVXDPTR, A-傳送指令應用傳送指令應用第第3章章
30、MCS-51指令系統指令系統2022-6-1448助記符 功能說明MOVC A, A+DPTR ;(A)+(DPTR) A表格地址 ;單元中的內容送到累加器A中MOVC A, A+PC;(PC)+1PC,(A)+(PC) A ;表格地址單元中的內容送到累加器A中功能:將ROM中的數據送到A中。常用此指令來查一個已存儲在ROM中的數據表格。這組指令也稱為查表指令。-傳送指令應用傳送指令應用第第3章章 MCS-51指令系統指令系統2022-6-1449以DPTR或PC為基址,以A為變址,在不斷修改A中內容(等值增量)的同時,執行該指令,實現對ROM中存儲的一塊區域數據的讀取。以PC為基址時,不用設
31、置PC的值,只需根據A的內容,就可以查出表格中的數據。但表格只能放在該條查表指令后面的256個單元之中,表格的大小受到限制,而且表格只能被一段程序所利用。而以DPTR為基址時,表格的大小和位置可以在64 KB的ROM中任意安排,并且表格可被任意程序塊所共享。說明:查找到的結果放在A中,因此,這類指令執行前后,A中的值不一定相同。-傳送指令應用傳送指令應用第第3章章 MCS-51指令系統指令系統2022-6-1450例3-2 有一個110的平方表存放在0100H開始的ROM中,用DPTR和R0基址+變址的尋址方式實現查表功能,確定110(在R0中)的平方值。MOVDPTR, #0100HMOVA
32、, R0MOVCA, A+DPTR.ORG0100H ;ORG是指明后面數據塊的起始地址DB0,1, 4, 9, 16, 25, 36DB49, 64, 81, 100 ;DB是定義字節指令-傳送指令應用傳送指令應用第第3章章 MCS-51指令系統指令系統2022-6-1451助記符 功能說明PUSH direct ;(SP)+1SP,(direct) (SP);堆棧指針首先加1,直接尋址單元;中的數據送到堆棧指針SP所指的;單元中POP direct;(SP) direct,(SP) - 1SP;堆棧指針SP所指的單元中的數據;送到直接尋址單元中,堆棧指針;SP再進行減1操作-傳送指令應用傳
33、送指令應用第第3章章 MCS-51指令系統指令系統2022-6-1452功能:第1條為壓入堆棧指令,就是將direct中的內容送入堆棧中;第2條為彈出堆棧指令,就是將堆棧中的內容送回到direct中。如: MOVSP, #5FH MOVA, #100 MOVB, #20 PUSHACC PUSHB POP ACC PUSH B-傳送指令應用傳送指令應用其中,PUSH ACC指令是這樣執行的:將SP中的值加1,即變為60H,然后將A中的值送到60H單元中,因此執行完本條指令后,內存60H單元中的值就是100。同樣,執行PUSH B時,是將SP中的值加1,即變為61H,然后將B中的值送入到61H單
34、元中,即執行完本條指令后,61H單元中的值變為20。第第3章章 MCS-51指令系統指令系統2022-6-1453助記符 功能說明XCH A, Rn ;(A)(Rn)累加器與工作寄存器 Rn中的內容互換XCH A, direct ;(A)(direct)累加器與直接地址 單元中的內容互換XCH A, Ri ;(A)(Ri)累加器與工作寄存器 Ri所指存儲單容互換元中的內容互換-傳送指令應用傳送指令應用第第3章章 MCS-51指令系統指令系統2022-6-1454XCHD A, Ri;(A.3A.0)(Ri.3Ri.0)累加器與工作寄存器Ri所指存儲單元中的低半字節內容互換功能:這4條指令是把累
35、加器A中的內容與源操作數所指的數據相互交換。類似指令:SWAP A; (A.3A.0)(A.7A.4)累加器中內容高低半字節互換。-傳送指令應用傳送指令應用第第3章章 MCS-51指令系統指令系統2022-6-1455例3-3 假設A中內容為34H,R0指向的單元內容為56H。執行下列指令后看結果。MOV R6, #29H ;R6=29HXCH A, R6 ;A=29H,R6=34HSWAP A ;A=92HXCH A, R6 ;A=34H,R6=92HXCHD A, R0 ;A=36H,(R0)=54H-傳送指令應用傳送指令應用第第3章章 MCS-51指令系統指令系統2022-6-14563
36、.2.2 3.2.2 算術運算類指令算術運算類指令MCS-51的算術運算指令共有24條。助記符有ADD、ADDC、SUBB、DA、INC、DEC、MUL、DIV。算術運算主要是執行加、減、乘、除法四則運算。第第3章章 MCS-51指令系統指令系統2022-6-14573.2.2 3.2.2 算術運算類指令算術運算類指令第第3章章 MCS-51指令系統指令系統2022-6-14583.2.2 3.2.2 算術運算類指令算術運算類指令第第3章章 MCS-51指令系統指令系統2022-6-14593.2.2 3.2.2 算術運算類指令算術運算類指令第第3章章 MCS-51指令系統指令系統2022-6
37、-1460例3-4 設1067H存在于R1R0中,30A0H存在于R3R2中,計算R1R0+R3R2,結果存于R5R4中。MOV A, R0ADD A, R2 ;R0+R2A和CyMOV R4, AMOV A, R1ADDC A, R3;R1+R3+CyA和CyMOV R5, A R1 R0+R3 R2 R5 R43.2.2 3.2.2 算術運算類指令算術運算類指令第第3章章 MCS-51指令系統指令系統2022-6-1461例3-5 設A=12H,R0=33H,(21H)=32H,(34H)=22H,DPTR=1234H。連續執行下面指令后看相應寄存器和單元中的結果。 INC A;A=13H
38、INC R0;R0=34HINC 21H;(21H)=33HINC R0;(34H)=23HINC DPTR ;DPTR=1235H3.2.2 3.2.2 算術運算類指令算術運算類指令第第3章章 MCS-51指令系統指令系統2022-6-14623.2.3 3.2.3 邏輯運算類指令邏輯運算類指令邏輯運算和移位指令共有25條,助記符有ANL、ORL、XRL、CLR、CPL、RL、RLC、RR、RRC,SWAP。有與、或、異或、求反、左/右移位、清0等邏輯操作,有直接、寄存器和寄存器間址等尋址方式。這類指令一般不影響程序狀態字(PSW)標志。MCS-51指令系統的邏輯運算指令見下表。第第3章章
39、MCS-51指令系統指令系統2022-6-1463邏輯運算類指令列表第第3章章 MCS-51指令系統指令系統2022-6-1464邏輯運算類指令列表第第3章章 MCS-51指令系統指令系統2022-6-1465助記符 功能說明ORL A, Rn ;(A)(Rn)AORL A, direct ;(A)(direct)AORL A, Ri ;(A)(Ri)AORL A, #data ;(A)dataAORL direct, A ;(direct)(A)directORL direct, #data ;(direct)datadirect 3.2.3 3.2.3 邏輯運算類指令邏輯運算類指令第第3章
40、章 MCS-51指令系統指令系統2022-6-14663.2.3 3.2.3 邏輯運算類指令邏輯運算類指令功能:將兩個單元中的內容執行邏輯或操作。如果目功能:將兩個單元中的內容執行邏輯或操作。如果目的操作數的直接地址是的操作數的直接地址是I/O地址,則為地址,則為“讀讀修修改改寫寫”操作。如:操作。如:MOVA, #45H;A=45HMOVR1, #25H;R1=25HMOV25H, #39H ;(25H)=39HORLA, R1;45H39H = 7DH, A = 7DHORL25H, #13H ;39H13H = 3BH, (25H) = 3BHORL25H, A;3BH7DH =7FH,
41、 (25H) = 7FH第第3章章 MCS-51指令系統指令系統2022-6-14673.2.3 3.2.3 邏輯運算類指令邏輯運算類指令助記符助記符 功能說明功能說明ANL A, Rn ;(A)(Rn)AANL A, direct ;(A)(direct)AANL A, Ri ;(A)(Ri)AANL A, #data ;(A)dataAANL direct, A ;(direct)(A)directANL direct, #data ;(direct)datadirect第第3章章 MCS-51指令系統指令系統2022-6-14683.2.3 3.2.3 邏輯運算類指令邏輯運算類指令功能:
42、將兩個單元中的內容執行邏輯與操作。如果目的操功能:將兩個單元中的內容執行邏輯與操作。如果目的操作數的直接地址是作數的直接地址是I/O地址,則為地址,則為“讀讀修改修改寫寫”操作。如:操作。如:MOVA, #45H;A=45HMOVR1, #25H;R1=25HMOV25H, #79H;(25H)=79HANLA, R1;45H79H = 41H, A = 41HANL25H, #15H;79H15H = 11H, (25H) = 11HANL25H, A;11H41H = 01H, (25H) = 01H第第3章章 MCS-51指令系統指令系統2022-6-14693.2.3 3.2.3 邏輯
43、運算類指令邏輯運算類指令3邏輯異或指令(邏輯異或指令(6條)條)第第3章章 MCS-51指令系統指令系統2022-6-14703.2.3 3.2.3 邏輯運算類指令邏輯運算類指令第第3章章 MCS-51指令系統指令系統2022-6-14713.2.3 3.2.3 邏輯運算類指令邏輯運算類指令第第3章章 MCS-51指令系統指令系統2022-6-14723.2.3 3.2.3 邏輯運算類指令邏輯運算類指令第第3章章 MCS-51指令系統指令系統2022-6-14733.2.3 3.2.3 邏輯運算類指令邏輯運算類指令第第3章章 MCS-51指令系統指令系統2022-6-14743.2.3 3.2
44、.3 邏輯運算類指令邏輯運算類指令第第3章章 MCS-51指令系統指令系統2022-6-14753.2.3 3.2.3 邏輯運算類指令邏輯運算類指令第第3章章 MCS-51指令系統指令系統2022-6-1476SWAP A; (A.3A.0)(A.7A.4)累加器中內容高低半字節互換第第3章章 MCS-51指令系統指令系統2022-6-14773.2.4 3.2.4 控制轉移類指令控制轉移類指令控制轉移指令有17條,助記符有:ACALL、LCALL、RET、RETI、AJMP、LJMP、SJMP、JMP、CJNE、DJNZ、JZ、JNZ、NOP。控制轉移指令用于控制程序的流向,所控制的范圍即為
45、程序存儲器區間。第第3章章 MCS-51指令系統指令系統2022-6-1478控制轉移類指令列表3.2.4 3.2.4 控制轉移類指令控制轉移類指令第第3章章 MCS-51指令系統指令系統2022-6-14793.2.4 3.2.4 控制轉移類指令控制轉移類指令控制轉移類指令列表第第3章章 MCS-51指令系統指令系統2022-6-14803.2.4 3.2.4 控制轉移類指令控制轉移類指令控制轉移類指令列表第第3章章 MCS-51指令系統指令系統2022-6-1481 MOV DPTR, #TAB ;將TAB代表的地址送入DPTR JMP A+DPTR ;跳轉 TAB: AJMP ROUT0
46、;A=0時,跳轉到ROUT0TAB+2: AJMP ROUT1;A=2時,跳轉到ROUT1TAB+4: AJMP ROUT2;A=4時,跳轉到ROUT2TAB+6: AJMP ROUT3;A=6時,跳轉到ROUT3.ROUT0:.ROUT1: .ROUT2: .ROUT3: .3.2.4 3.2.4 控制轉移類指令控制轉移類指令第第3章章 MCS-51指令系統指令系統2022-6-1482例3-7 條件轉移程序結構舉例。MOVA, R0JZL1MOVR1, #00HAJMPL2L1:MOVR1, #0FFHL2:SJMPL2在執行上面這段程序前,如果R0=0,結果是R1=0FFH;如果R00,
47、結果是R1=00H。把上面例子中的JZ改成JNZ后,如果R0=0,結果是R1=00H;如果R00,結果是R1=0FFH。3.2.4 3.2.4 控制轉移類指令控制轉移類指令第第3章章 MCS-51指令系統指令系統2022-6-1483 MOV A, R0 CJNE A, #10H, L1 ;如R010H,則轉移至標號L1 MOV R1, #0 ;如R0=10H,則不轉移,00HR1 AJMP L3L1: JC L2 ;如Cy=1,即R010H,0AAHR1 AJMP L3L2: MOV R1, #0FFH ;R010H,則R1=0AAH;如果R010H,則R1=0FFH。3.2.4 3.2.4 控制轉移類指令控制轉移類指令第第3章章 MCS-51指令系統指令
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論