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

下載本文檔

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

文檔簡(jiǎn)介

1、第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-141第第3章章 MCS-51單片機(jī)指令系統(tǒng)單片機(jī)指令系統(tǒng)第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-142本章教學(xué)要求本章教學(xué)要求o熟悉MCS-51單片機(jī)指令系統(tǒng)的分類(lèi)、格式;o熟悉MCS-51指令系統(tǒng)的七種尋址方式;o掌握MCS-51指令系統(tǒng)的數(shù)據(jù)傳送、算術(shù)運(yùn)算、邏輯運(yùn)算、轉(zhuǎn)移操作、布爾運(yùn)算等指令的功能;第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-143本章目錄本章目錄3.1 指令系統(tǒng)簡(jiǎn)介3.1.1 指令系統(tǒng)的分類(lèi)3.1.2 指令格式3.1.3 指令中的常用符號(hào)3.1.4 尋址方式3.2 指令系統(tǒng)指令系統(tǒng)3.2.1

2、數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令3.2.2 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令3.2.3 邏輯運(yùn)算指令邏輯運(yùn)算指令3.2.4 控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令3.2.5 位操作指令位操作指令習(xí)題與思考題習(xí)題與思考題第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1443.1 3.1 指令系統(tǒng)簡(jiǎn)介指令系統(tǒng)簡(jiǎn)介指令系統(tǒng) 計(jì)算機(jī)所有指令的集合,稱(chēng)為該計(jì)算機(jī)的指令系統(tǒng),它是表征計(jì)算機(jī)性能的重要標(biāo)志。每種計(jì)算機(jī)都有它自己特有的指令系統(tǒng)。指令是指計(jì)算機(jī)執(zhí)行某種操作(如傳送數(shù)據(jù)、做算術(shù)運(yùn)算等)的命令。第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-145要讓計(jì)算機(jī)工作,就得向計(jì)算機(jī)發(fā)出指令。o指令的格式是機(jī)器碼指令格式,

3、如:如:11100101B 11100101B ,即數(shù)字格式。,即數(shù)字格式。o另一種指令格式,即匯編指令格式,如:如:MOV P1, #5BHMOV P1, #5BH-指令的兩種格式指令的兩種格式3.1 3.1 指令系統(tǒng)簡(jiǎn)介指令系統(tǒng)簡(jiǎn)介第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-146-MCS-51-MCS-51匯編語(yǔ)言指令格式匯編語(yǔ)言指令格式標(biāo)號(hào)段: 操作碼段 操作數(shù)段 ;注釋段 操作數(shù)1 ,操作數(shù)23.1 3.1 指令系統(tǒng)簡(jiǎn)介指令系統(tǒng)簡(jiǎn)介第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-147-特點(diǎn)特點(diǎn)1) 指令執(zhí)行時(shí)間短。只需1個(gè)機(jī)器周期的指令有64條,2個(gè)機(jī)器周期的指令有

4、45條,而4個(gè)機(jī)器周期的指令僅有2條(既乘法和除法指令)。2) 指令字節(jié)少。單字節(jié)指令有49條,雙字節(jié)指令有46條,三字節(jié)指令有16條。3) 位操作指令極為豐富,這體現(xiàn)了MCS-51單片機(jī)具有面向控制的特點(diǎn)。3.1 3.1 指令系統(tǒng)簡(jiǎn)介指令系統(tǒng)簡(jiǎn)介第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1483.1.1 3.1.1 指令系統(tǒng)的分類(lèi)指令系統(tǒng)的分類(lèi) MCS-51單片機(jī)能夠識(shí)別并執(zhí)行的指令共有111條。按指令所占字節(jié)數(shù)、指令執(zhí)行時(shí)間和指令功能進(jìn)行分類(lèi)。 1按指令所占字節(jié)數(shù)分類(lèi) 1) 單字節(jié)指令(49條) 2) 雙字節(jié)指令(46條) 3) 三字節(jié)指令(16條)第第3章章 MCS-51指令

5、系統(tǒng)指令系統(tǒng)2022-6-1492按指令執(zhí)行時(shí)間分類(lèi)按指令執(zhí)行時(shí)間分類(lèi)1) 單周期指令(65條)2) 雙周期指令(44條)3) 四周期指令(2條)3.1.1 3.1.1 指令系統(tǒng)的分類(lèi)指令系統(tǒng)的分類(lèi)第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14101) 數(shù)據(jù)傳送類(lèi)指令(29條)2) 算術(shù)運(yùn)算類(lèi)指令(24條)3) 邏輯運(yùn)算類(lèi)指令(24條)4) 控制轉(zhuǎn)移類(lèi)指令(17條)5) 位操作類(lèi)指令(17條)3.1.1 3.1.1 指令系統(tǒng)的分類(lèi)指令系統(tǒng)的分類(lèi)第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14113.1.2 3.1.2 指令格式指令格式 指令由操作碼和操作數(shù)組成。操作碼用來(lái)

6、規(guī)定要執(zhí)行的操作的性質(zhì),操作數(shù)為指令的操作提供數(shù)據(jù)和地址。1指令的基本格式符號(hào)地址: 操作碼 操作數(shù)1 ,操作數(shù)2 ,操作數(shù)3 ;注釋 其中符號(hào)地址和操作碼之間用“:”作為分隔符,也可再加上若干空格。操作碼和操作數(shù)之間用空格作為分隔符。操作數(shù)之間用“,”作為分隔符。注釋之前用“;”作為分隔符。第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1412一條指令必須在一行中寫(xiě)完。例如:MAIN:MOV A,#10H ;主程序段nMAIN為符號(hào)地址;nMOV為操作碼;nA、#10H為二個(gè)操作數(shù);n最后是注釋。 指令在送入計(jì)算機(jī)執(zhí)行之前,必須先轉(zhuǎn)換成機(jī)器語(yǔ)言形式。轉(zhuǎn)換成機(jī)器語(yǔ)言的過(guò)程稱(chēng)為匯編,匯編

7、有機(jī)器匯編和手工匯編兩種方法。3.1.2 3.1.2 指令格式指令格式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14133.1.3 3.1.3 指令中的常用符號(hào)指令中的常用符號(hào) 為了便于閱讀指令,MCS-51指令助記符中的一些常用符號(hào)約定如下。nRn:表示當(dāng)前工作寄存器R0R7中的一個(gè)。nRi:表示寄存器間接尋址,常作間接尋址的地址指針。其中Ri代表R0和R1寄存器中的一個(gè)。nDPTR:表示以DPTR為數(shù)據(jù)指針的間接尋址,用于對(duì)外部64RAM/ROM尋址。ndirect:表示內(nèi)部數(shù)據(jù)存貯器單元的地址及特殊功能寄存器SFR的地址,對(duì)SFR而言,既可使用它的物理地址,也可直接使用它的名

8、字。第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1414o#data:表示8位立即數(shù),即8位常數(shù),取值范圍為#00H#0FFH。odata16:表示16位立即數(shù),即16位常數(shù),取值范圍為#0000H#0FFFFH。oaddr16:表示16位地址。oaddr11:表示11位地址。orel:用補(bǔ)碼形式表示的地址偏移量,取值范圍為-128+127。obit:表示內(nèi)部RAM和SFR中的具有位尋址功能的位地址。3.1.3 3.1.3 指令中的常用符號(hào)指令中的常用符號(hào)第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1415o:表示間接尋址寄存器或基址寄存器的前綴符號(hào)。o$:表示當(dāng)前指令的地

9、址。o/:位操作數(shù)的前綴,表示對(duì)該位操作數(shù)取反,如:/bit。o(x):表示存儲(chǔ)單元x的內(nèi)容。o(x):表示以寄存器或存儲(chǔ)單元x的內(nèi)容作為地址的存儲(chǔ)單元的內(nèi)容。o:表示數(shù)據(jù)傳送方向。3.1.3 3.1.3 指令中的常用符號(hào)指令中的常用符號(hào)第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14163.1.4 3.1.4 尋址方式尋址方式 如何找到參與運(yùn)算的操作數(shù)據(jù)或數(shù)據(jù)所在的地址稱(chēng)為尋址方式。所以尋址方式是在地址范圍內(nèi)如何找到所需要的操作數(shù)的地址。 MCS-51指令系統(tǒng)的尋址方式主要有立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、基址加變址尋址、相對(duì)尋址和位尋址等七種。第第3章章 MCS-

10、51指令系統(tǒng)指令系統(tǒng)2022-6-1417 立即尋址是將操作數(shù)直接寫(xiě)在指令中,作為指令的一部分存放在代碼段里,位置在程序存儲(chǔ)器中。立即尋址中的操作數(shù),稱(chēng)為立即數(shù)。例如:MOV A, #30H ;30HA3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14182.2.直接尋址直接尋址 直接尋址是將操作數(shù)的地址直接存放在指令中。這種尋址方式的操作數(shù)指的是內(nèi)部數(shù)據(jù)存儲(chǔ)器中存放數(shù)據(jù)的地址,或存放數(shù)據(jù)的一個(gè)特殊功能寄存器地址。例如:MOV A, 30H ;(30H)A3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6

11、-1419直接尋址方式可訪(fǎng)問(wèn)的范圍直接尋址方式可訪(fǎng)問(wèn)的范圍1) 特殊功能寄存器。這部分存儲(chǔ)單元既可以用單元地址給出,也可以用寄存器符號(hào)的形式給出。如:MOV A, 90H 或 MOV A, P1為同一條指令的兩種寫(xiě)法(特殊功能寄存器只能用直接尋址方式訪(fǎng)問(wèn))。2) 內(nèi)部數(shù)據(jù)存儲(chǔ)器的低128個(gè)字節(jié)單元。直接以單元地址的形式給出對(duì)于8032/8052等單片機(jī),其內(nèi)部高128字節(jié)RAM(80HFFH)不能用直接尋址方式訪(fǎng)問(wèn)。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14203) 位地址空間片內(nèi)RAM中20H2FH中的128個(gè)位地址,以及SFR中的11

12、個(gè)可進(jìn)行位尋址的寄存器中的位地址(可位尋址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0P3)。4) 在一些程序控制指令中,可采用直接尋址方式提供程序轉(zhuǎn)移的目標(biāo)地址。3.1.4 3.1.4 尋址方式尋址方式直接尋址方式可訪(fǎng)問(wèn)的范圍直接尋址方式可訪(fǎng)問(wèn)的范圍第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1421-寄存器尋址寄存器尋址寄存器尋址是指操作數(shù)存放在寄存器中,并且尋址時(shí)的寄存器已隱含在指令的操作碼中。例如:MOV A, R53.1.4 3.1.4 尋址方式尋址方式3.寄存器尋址寄存器尋址第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1422寄存器

13、尋址方式的尋址范圍:(1) 4個(gè)工作寄存器組共32個(gè)通用寄存器(在指令中只能使用當(dāng)前寄存器組)(2) 部分特殊功能寄存器。如A,B,DPTR。-寄存器尋址寄存器尋址3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1423-寄存器尋址寄存器尋址4.寄存器間接尋址寄存器間接尋址是指操作數(shù)據(jù)存放在以寄存器內(nèi)容為地址的單元中。如:MOV A, R0 ;(R0)A指令功能為將R0所指出的內(nèi)部RAM單元內(nèi)容送入累加器A中,執(zhí)行過(guò)程如圖所示。圖中設(shè)R0=60H。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1424

14、寄存器間接尋址的尋址范圍:寄存器間接尋址的尋址范圍:1) 內(nèi)部低128字節(jié)單元(只能使用R0、R1作間址寄存器)。2) 外部數(shù)據(jù)存儲(chǔ)器(64KB字節(jié),使用DPTR作間址寄存器。另外,外部低128B單元也可用R0、R1作間址寄存器尋址)。3) 在堆棧操作指令(PUSH、POP)中,以堆棧指針SP作間址寄存器,尋址空間為片內(nèi)RAM。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1425-基址變址尋址基址變址尋址基址變址尋址是指操作數(shù)存放在以變址寄存器和基址寄存器的內(nèi)容相加形成的數(shù)為地址的單元中。其中累加器A作變址寄存器、程序計(jì)數(shù)器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指令系統(tǒng)指令系統(tǒng)2022-6-1426相對(duì)尋址是將程序計(jì)數(shù)器PC的當(dāng)前值與指令第二字節(jié)給出的偏移量相加,從而形成轉(zhuǎn)移的目標(biāo)地址。例如:JC 80H ;C=1則跳轉(zhuǎn)-相對(duì)尋址相對(duì)尋址3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1427-位尋址位尋址位尋址是指對(duì)片內(nèi)RAM中20H2FH中的128個(gè)位地址

16、,以及SFR中的11個(gè)可進(jìn)行位尋址的寄存器中的位地址尋址(可位尋址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0P3)。例如:MOV C, 20H此指令是將RAM中位尋址區(qū)20H位地址中的內(nèi)容,送給位累加器Cy。位尋址指令不同于字節(jié)地址尋址指令,例如:MOV A, 20H 3.1.4 3.1.4 尋址方式尋址方式7.位尋址位尋址第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1428-位尋址的表示形式位尋址的表示形式1) 直接使用位地址包括位尋址區(qū)的位地址包括位尋址區(qū)的位地址00H7FH和部分特殊功能寄存器的和部分特殊功能寄存器的位地址。例如,位地址。例如,P

17、SW寄存器第寄存器第2位的位地址為位的位地址為D2H。2) 位名稱(chēng)表示法專(zhuān)用寄存器中的一些尋址位是有符號(hào)名的,對(duì)其進(jìn)行位尋址專(zhuān)用寄存器中的一些尋址位是有符號(hào)名的,對(duì)其進(jìn)行位尋址時(shí)可用其符號(hào)名,例如,時(shí)可用其符號(hào)名,例如,PSW寄存器的第寄存器的第2位可用位可用OV表示。表示。3) 單元地址加位表示法例如,例如,2F單元的第單元的第1位,可表示為位,可表示為2FH.1。再如,再如,D0H單元(單元(PSW)的第)的第2位,可表示為位,可表示為D0H.2。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14294) 專(zhuān)用寄存器名稱(chēng)加位表示法例如,例如,

18、PSW寄存器的第寄存器的第2位可表示為:位可表示為:PSW.2。對(duì)于可位尋址的特殊功能寄存器,上面對(duì)于可位尋址的特殊功能寄存器,上面4種表示法是等種表示法是等效的。以讀取效的。以讀取PSW第二位為例的第二位為例的4種位尋址指令如下:種位尋址指令如下:MOV C, 0D2H ;直接使用位地址尋址直接使用位地址尋址MOV C, OV ;使用位名稱(chēng)尋址使用位名稱(chēng)尋址MOV C, 0D0H.2 ;使用單元地址加位表示法尋址使用單元地址加位表示法尋址MOV C, PSW.2 ;使用專(zhuān)用寄存器名稱(chēng)加位表示法尋址使用專(zhuān)用寄存器名稱(chēng)加位表示法尋址3.1.4 3.1.4 尋址方式尋址方式-位尋址的表示形式位尋址

19、的表示形式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1430在MCS-51單片機(jī)的指令系統(tǒng)中,指令對(duì)哪一個(gè)存儲(chǔ)器空間進(jìn)行操作,是由指令的操作碼和尋址方式確定的。1)對(duì)程序存儲(chǔ)器只能采用立即尋址和基址加變址尋址方式;2)對(duì)特殊功能寄存器只能采用直接尋址方式,不能采用寄存器間接尋址; 3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14313)對(duì)8032/8052等單片機(jī)內(nèi)部RAM的高128個(gè)字節(jié)(80HFFH),只能采用寄存器間接尋址,不能使用直接尋址方式;4)對(duì)位操作指令只能對(duì)位尋址區(qū)操作;5)外部擴(kuò)展的數(shù)據(jù)存儲(chǔ)器只能用MOVX指令訪(fǎng)問(wèn)

20、;6)內(nèi)部RAM的低128個(gè)字節(jié)(00H7FH)既能用直接尋址,也能用間接尋址。3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1432存儲(chǔ)空間對(duì)應(yīng)的尋址方式3.1.4 3.1.4 尋址方式尋址方式第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14333.2 3.2 指令系統(tǒng)指令系統(tǒng)MCS-51的數(shù)據(jù)傳送指令共有28條。助記符有MOV、MOVC、MOVX、XCH、XCHD、PUSH、POP。數(shù)據(jù)傳送指令一般的操作是把源操作數(shù)傳送到目的操作數(shù),指令執(zhí)行完成后,源操作數(shù)不變,目的操作數(shù)等于源操作數(shù)。如果要求在進(jìn)行數(shù)據(jù)傳送時(shí),目的操作數(shù)不丟失,則

21、不能用直接傳送指令,而采用交換型的數(shù)據(jù)傳送指令。數(shù)據(jù)傳送指令不影響標(biāo)志Cy、AC和OV,但可能會(huì)對(duì)奇偶標(biāo)志P有影響。第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1434-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1435-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1436助記符 功能說(shuō)明MOV A, Rn ;(Rn)ARn中的內(nèi)容送到累加器A中MOV A, direct ;(direct) A直接地址單元中的內(nèi)容送到 累加器A中MOV A, Ri ;(Ri) A Ri內(nèi)容指向的地址單元中的 內(nèi)容送到累加器A中MO

22、V A, #data;dataA立即數(shù)送到累加器A中功能:將源操作數(shù)指定內(nèi)容送到累加器A中。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1437助記符功能說(shuō)明MOV Rn, A ;(A)Rn 累加器A中的內(nèi)容送到寄存 器Rn中MOV Rn, direct;(direct) Rn直接尋址單元中的 內(nèi)容送到寄存器Rn中MOV Rn, #data;dataRn 立即數(shù)直接送到寄存器 Rn中功能:將源操作數(shù)指定的內(nèi)容送到所選定的工作寄存器Rn中。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1438助記符 功能說(shuō)明MOV direc

23、t, A ;(A)direct 累加器A中的內(nèi)容送到直接地址單元中MOV direct, Rn;(Rn)direct寄存器Rn中的內(nèi)容送到直接地址單元中MOV direct1, direct2 ;(direct2) direct1 直接地址單元2中的內(nèi)容送到直接地址1中MOV direct, Ri ;(Ri) direct以寄存器Ri中的內(nèi)容為地址的單元中內(nèi)容送到直接地址單元中MOV direct,#data ;datadirect 立即數(shù)送到直接地址單元中-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1439功能:將源操作數(shù)指定的內(nèi)容送到由直接地址指出的片內(nèi)

24、存儲(chǔ)單元中。如:MOV 20H, A;累加器A中的內(nèi)容送到20H直接地址單元中MOV 20H, R1 ;寄存器R1中的內(nèi)容送到20H直接地址單元中MOV 20H, 30H;30H直接地址單元中的內(nèi)容送到20H直接地址單元中MOV 20H, R1;以寄存器R1中的內(nèi)容為地址的單元中內(nèi)容送到20H直接地址單元中MOV 20H, #34H ;立即數(shù)送到20H直接地址單元中MOV P2, #34H ;立即數(shù)送到P2直接地址單元中-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1440助記符 功能說(shuō)明MOV Ri, A;(A)(Ri) 累加器A中內(nèi)容送到以Ri中內(nèi)容為 地

25、址的RAM單元中MOV Ri, direct ;(direct) (Ri)直接地址單元中內(nèi)容送到以Ri中內(nèi)容為地址的RAM單元中MOV Ri, #data ;data(Ri) 立即數(shù)送到以Ri中內(nèi)容 為地址的RAM單元中-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1441功能:將源操作數(shù)指定的內(nèi)容送到以R0或R1為地址指針的片內(nèi)RAM存儲(chǔ)單元中。如:MOV R0, A;累加器A中內(nèi)容送到以R0中內(nèi)容為 地址的RAM單元中MOV R1, 20H;20H單元中內(nèi)容送到以R1中內(nèi)容為 地址的RAM單元中MOV R0, #34H ;立即數(shù)34H送到以R0中內(nèi)容為地

26、址的RAM單元中-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1442助記符 功能說(shuō)明MOV DPTR, #data16;dataHDPH,dataLDPL ;16位常數(shù)的高8位送到DPH,低8位送到DPL功能:將一個(gè)16位的立即數(shù)送到DPTR中去。其中高8位送入DPH,低8位送入DPL。如:MOV DPTR, #1234H;指令執(zhí)行后DPH中的值為 12H,DPL中的值為34H-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1443如果我們分別向DPH和DPL送數(shù),則結(jié)果也一樣。如下面兩條指令:MOV DPH, #12HMOV

27、 DPL, #34H就相當(dāng)于執(zhí)行了MOV DPTR, #1234H。MCS-51是一種8位機(jī),這是唯一的一條16位立即數(shù)傳遞指令。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1444助記符 功能說(shuō)明MOVX A, Ri ;(Ri) A寄存器Ri指向的片外RAM單元中的內(nèi)容送到累加器A中MOVX Ri, A ;A(Ri)累加器A中內(nèi)容送到寄存器Ri指向的片外RAM單元中MOVX A, DPTR ;(DPTR) A數(shù)據(jù)指針指向的片外 RAM單元中的內(nèi)容送到累加器A中MOVX DPTR, A ;(A)(DPTR)累加器A中內(nèi)容送到數(shù) 據(jù)指針指向的片外RAM單元中-

28、傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1445功能:在MCS-51中,與外部存儲(chǔ)器RAM打交道的只可以是A累加器。所有需要送入外部RAM的數(shù)據(jù)必須通過(guò)A傳送,而所有要讀入的外部RAM中的數(shù)據(jù)也必須通過(guò)A讀入。在此我們可以看出內(nèi)外部RAM的區(qū)別,內(nèi)部RAM間可以直接進(jìn)行數(shù)據(jù)傳遞,而外部RAM則不行。例如,要將外部RAM中某一單元(假設(shè)為0100H單元的數(shù)據(jù))送入另一個(gè)單元(假設(shè)為0200H單元),則必須先將0100H單元中的內(nèi)容讀入A,然后再送到0200H單元中去。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1446要讀

29、或?qū)懲獠縍AM,必須要知道16位的RAM地址。在后兩條指令中,地址是被直接放在DPTR中的。而前兩條指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提供低8位地址,此時(shí),高8位地址要由P2口來(lái)提供。使用時(shí)應(yīng)先將要讀或?qū)懙牡刂匪腿隓PTR或Ri(高8位地址送到P2口)中,然后再用讀/寫(xiě)指令。-傳送指令列表傳送指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1447例3-1 將外部RAM的100H單元中內(nèi)容送入外部RAM的200H單元中。MOVDPTR, #0100HMOVXA, DPTRMOVDPTR, #0200HMOVXDPTR, A-傳送指令應(yīng)用傳送指令應(yīng)用第第3章章

30、MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1448助記符 功能說(shuō)明MOVC A, A+DPTR ;(A)+(DPTR) A表格地址 ;單元中的內(nèi)容送到累加器A中MOVC A, A+PC;(PC)+1PC,(A)+(PC) A ;表格地址單元中的內(nèi)容送到累加器A中功能:將ROM中的數(shù)據(jù)送到A中。常用此指令來(lái)查一個(gè)已存儲(chǔ)在ROM中的數(shù)據(jù)表格。這組指令也稱(chēng)為查表指令。-傳送指令應(yīng)用傳送指令應(yīng)用第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1449以DPTR或PC為基址,以A為變址,在不斷修改A中內(nèi)容(等值增量)的同時(shí),執(zhí)行該指令,實(shí)現(xiàn)對(duì)ROM中存儲(chǔ)的一塊區(qū)域數(shù)據(jù)的讀取。以PC為基址時(shí),不用設(shè)

31、置PC的值,只需根據(jù)A的內(nèi)容,就可以查出表格中的數(shù)據(jù)。但表格只能放在該條查表指令后面的256個(gè)單元之中,表格的大小受到限制,而且表格只能被一段程序所利用。而以DPTR為基址時(shí),表格的大小和位置可以在64 KB的ROM中任意安排,并且表格可被任意程序塊所共享。說(shuō)明:查找到的結(jié)果放在A(yíng)中,因此,這類(lèi)指令執(zhí)行前后,A中的值不一定相同。-傳送指令應(yīng)用傳送指令應(yīng)用第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1450例3-2 有一個(gè)110的平方表存放在0100H開(kāi)始的ROM中,用DPTR和R0基址+變址的尋址方式實(shí)現(xiàn)查表功能,確定110(在R0中)的平方值。MOVDPTR, #0100HMOVA

32、, R0MOVCA, A+DPTR.ORG0100H ;ORG是指明后面數(shù)據(jù)塊的起始地址DB0,1, 4, 9, 16, 25, 36DB49, 64, 81, 100 ;DB是定義字節(jié)指令-傳送指令應(yīng)用傳送指令應(yīng)用第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1451助記符 功能說(shuō)明PUSH direct ;(SP)+1SP,(direct) (SP);堆棧指針首先加1,直接尋址單元;中的數(shù)據(jù)送到堆棧指針SP所指的;單元中POP direct;(SP) direct,(SP) - 1SP;堆棧指針SP所指的單元中的數(shù)據(jù);送到直接尋址單元中,堆棧指針;SP再進(jìn)行減1操作-傳送指令應(yīng)用傳

33、送指令應(yīng)用第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1452功能:第1條為壓入堆棧指令,就是將direct中的內(nèi)容送入堆棧中;第2條為彈出堆棧指令,就是將堆棧中的內(nèi)容送回到direct中。如: MOVSP, #5FH MOVA, #100 MOVB, #20 PUSHACC PUSHB POP ACC PUSH B-傳送指令應(yīng)用傳送指令應(yīng)用其中,PUSH ACC指令是這樣執(zhí)行的:將SP中的值加1,即變?yōu)?0H,然后將A中的值送到60H單元中,因此執(zhí)行完本條指令后,內(nèi)存60H單元中的值就是100。同樣,執(zhí)行PUSH B時(shí),是將SP中的值加1,即變?yōu)?1H,然后將B中的值送入到61H單

34、元中,即執(zhí)行完本條指令后,61H單元中的值變?yōu)?0。第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1453助記符 功能說(shuō)明XCH A, Rn ;(A)(Rn)累加器與工作寄存器 Rn中的內(nèi)容互換XCH A, direct ;(A)(direct)累加器與直接地址 單元中的內(nèi)容互換XCH A, Ri ;(A)(Ri)累加器與工作寄存器 Ri所指存儲(chǔ)單容互換元中的內(nèi)容互換-傳送指令應(yīng)用傳送指令應(yīng)用第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1454XCHD A, Ri;(A.3A.0)(Ri.3Ri.0)累加器與工作寄存器Ri所指存儲(chǔ)單元中的低半字節(jié)內(nèi)容互換功能:這4條指令是把累

35、加器A中的內(nèi)容與源操作數(shù)所指的數(shù)據(jù)相互交換。類(lèi)似指令:SWAP A; (A.3A.0)(A.7A.4)累加器中內(nèi)容高低半字節(jié)互換。-傳送指令應(yīng)用傳送指令應(yīng)用第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1455例3-3 假設(shè)A中內(nèi)容為34H,R0指向的單元內(nèi)容為56H。執(zhí)行下列指令后看結(jié)果。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-傳送指令應(yīng)用傳送指令應(yīng)用第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14563

36、.2.2 3.2.2 算術(shù)運(yùn)算類(lèi)指令算術(shù)運(yùn)算類(lèi)指令MCS-51的算術(shù)運(yùn)算指令共有24條。助記符有ADD、ADDC、SUBB、DA、INC、DEC、MUL、DIV。算術(shù)運(yùn)算主要是執(zhí)行加、減、乘、除法四則運(yùn)算。第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14573.2.2 3.2.2 算術(shù)運(yùn)算類(lèi)指令算術(shù)運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14583.2.2 3.2.2 算術(shù)運(yùn)算類(lèi)指令算術(shù)運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14593.2.2 3.2.2 算術(shù)運(yùn)算類(lèi)指令算術(shù)運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6

37、-1460例3-4 設(shè)1067H存在于R1R0中,30A0H存在于R3R2中,計(jì)算R1R0+R3R2,結(jié)果存于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 算術(shù)運(yùn)算類(lèi)指令算術(shù)運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1461例3-5 設(shè)A=12H,R0=33H,(21H)=32H,(34H)=22H,DPTR=1234H。連續(xù)執(zhí)行下面指令后看相應(yīng)寄存器和單元中的結(jié)果。 INC A;A=13H

38、INC R0;R0=34HINC 21H;(21H)=33HINC R0;(34H)=23HINC DPTR ;DPTR=1235H3.2.2 3.2.2 算術(shù)運(yùn)算類(lèi)指令算術(shù)運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14623.2.3 3.2.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算和移位指令共有25條,助記符有ANL、ORL、XRL、CLR、CPL、RL、RLC、RR、RRC,SWAP。有與、或、異或、求反、左/右移位、清0等邏輯操作,有直接、寄存器和寄存器間址等尋址方式。這類(lèi)指令一般不影響程序狀態(tài)字(PSW)標(biāo)志。MCS-51指令系統(tǒng)的邏輯運(yùn)算指令見(jiàn)下表。第第3章章

39、MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1463邏輯運(yùn)算類(lèi)指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1464邏輯運(yùn)算類(lèi)指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1465助記符 功能說(shuō)明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 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令第第3章

40、章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14663.2.3 3.2.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令功能:將兩個(gè)單元中的內(nèi)容執(zhí)行邏輯或操作。如果目功能:將兩個(gè)單元中的內(nèi)容執(zhí)行邏輯或操作。如果目的操作數(shù)的直接地址是的操作數(shù)的直接地址是I/O地址,則為地址,則為“讀讀修修改改寫(xiě)寫(xiě)”操作。如:操作。如: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指令系統(tǒng)指令系統(tǒng)2022-6-14673.2.3 3.2.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令助記符助記符 功能說(shuō)明功能說(shuō)明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指令系統(tǒng)指令系統(tǒng)2022-6-14683.2.3 3.2.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令功能:

42、將兩個(gè)單元中的內(nèi)容執(zhí)行邏輯與操作。如果目的操功能:將兩個(gè)單元中的內(nèi)容執(zhí)行邏輯與操作。如果目的操作數(shù)的直接地址是作數(shù)的直接地址是I/O地址,則為地址,則為“讀讀修改修改寫(xiě)寫(xiě)”操作。如:操作。如: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指令系統(tǒng)指令系統(tǒng)2022-6-14693.2.3 3.2.3 邏輯

43、運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令3邏輯異或指令(邏輯異或指令(6條)條)第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14703.2.3 3.2.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14713.2.3 3.2.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14723.2.3 3.2.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14733.2.3 3.2.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14743.2.3 3.2

44、.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14753.2.3 3.2.3 邏輯運(yùn)算類(lèi)指令邏輯運(yùn)算類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1476SWAP A; (A.3A.0)(A.7A.4)累加器中內(nèi)容高低半字節(jié)互換第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14773.2.4 3.2.4 控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移指令有17條,助記符有:ACALL、LCALL、RET、RETI、AJMP、LJMP、SJMP、JMP、CJNE、DJNZ、JZ、JNZ、NOP??刂妻D(zhuǎn)移指令用于控制程序的流向,所控制的范圍即為

45、程序存儲(chǔ)器區(qū)間。第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1478控制轉(zhuǎn)移類(lèi)指令列表3.2.4 3.2.4 控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14793.2.4 3.2.4 控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-14803.2.4 3.2.4 控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令列表第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1481 MOV DPTR, #TAB ;將TAB代表的地址送入DPTR JMP A+DPTR ;跳轉(zhuǎn) TAB: AJMP ROUT0

46、;A=0時(shí),跳轉(zhuǎn)到ROUT0TAB+2: AJMP ROUT1;A=2時(shí),跳轉(zhuǎn)到ROUT1TAB+4: AJMP ROUT2;A=4時(shí),跳轉(zhuǎn)到ROUT2TAB+6: AJMP ROUT3;A=6時(shí),跳轉(zhuǎn)到ROUT3.ROUT0:.ROUT1: .ROUT2: .ROUT3: .3.2.4 3.2.4 控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1482例3-7 條件轉(zhuǎn)移程序結(jié)構(gòu)舉例。MOVA, R0JZL1MOVR1, #00HAJMPL2L1:MOVR1, #0FFHL2:SJMPL2在執(zhí)行上面這段程序前,如果R0=0,結(jié)果是R1=0FFH;如果R00,

47、結(jié)果是R1=00H。把上面例子中的JZ改成JNZ后,如果R0=0,結(jié)果是R1=00H;如果R00,結(jié)果是R1=0FFH。3.2.4 3.2.4 控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令系統(tǒng)2022-6-1483 MOV A, R0 CJNE A, #10H, L1 ;如R010H,則轉(zhuǎn)移至標(biāo)號(hào)L1 MOV R1, #0 ;如R0=10H,則不轉(zhuǎn)移,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 控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令第第3章章 MCS-51指令系統(tǒng)指令

溫馨提示

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

評(píng)論

0/150

提交評(píng)論