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

下載本文檔

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

文檔簡(jiǎn)介

1、教學(xué)基本要求:教學(xué)基本要求:(1 1)、了解單片機(jī)的指令系統(tǒng)、編程語(yǔ)言等基本概念;)、了解單片機(jī)的指令系統(tǒng)、編程語(yǔ)言等基本概念;(2 2)、熟悉單片機(jī)匯編語(yǔ)言指令格式中符號(hào)的意義;)、熟悉單片機(jī)匯編語(yǔ)言指令格式中符號(hào)的意義;(3 3)、熟悉單片機(jī)匯編語(yǔ)言指令系統(tǒng)每條指令的功能;)、熟悉單片機(jī)匯編語(yǔ)言指令系統(tǒng)每條指令的功能;(4 4)、掌握單片機(jī)指令系統(tǒng)的)、掌握單片機(jī)指令系統(tǒng)的7 7種尋址方式;種尋址方式;(5 5)、掌握單片機(jī)指令系統(tǒng)每類指令的用法。)、掌握單片機(jī)指令系統(tǒng)每類指令的用法。教學(xué)重點(diǎn):教學(xué)重點(diǎn):(1 1)、單片機(jī)指令系統(tǒng)的尋址方式;)、單片機(jī)指令系統(tǒng)的尋址方式;(2 2)、片內(nèi)、

2、外)、片內(nèi)、外RAMRAM單元之間的數(shù)據(jù)傳送;單元之間的數(shù)據(jù)傳送;(3 3)、加法運(yùn)算指令組的用法;)、加法運(yùn)算指令組的用法;(4 4)、邏輯運(yùn)算指令組的用法;)、邏輯運(yùn)算指令組的用法;(5 5)、控制轉(zhuǎn)移指令組的用法。)、控制轉(zhuǎn)移指令組的用法。第3 3章 80C5180C51單片機(jī)指令系統(tǒng)教學(xué)難點(diǎn):教學(xué)難點(diǎn):(1 1)、寄存器間接尋址、變址尋址、相對(duì)尋址等概念;)、寄存器間接尋址、變址尋址、相對(duì)尋址等概念;(2 2)、堆棧操作指令的應(yīng)用。)、堆棧操作指令的應(yīng)用。(3 3)、十進(jìn)制調(diào)整指令)、十進(jìn)制調(diào)整指令DA ADA A的應(yīng)用;的應(yīng)用;(4 4)、控制轉(zhuǎn)移指令轉(zhuǎn)移目的地址、偏移量)、控制轉(zhuǎn)移

3、指令轉(zhuǎn)移目的地址、偏移量relrel的計(jì)算;的計(jì)算;(5 5)、子程序調(diào)用、返回指令的用法。)、子程序調(diào)用、返回指令的用法。3.1 3.1 單片機(jī)指令系統(tǒng)概述1 1、指令系統(tǒng)概述、指令系統(tǒng)概述 指令指令: :是供用戶使用的單片機(jī)的軟件資源,是單片機(jī)所能接受是供用戶使用的單片機(jī)的軟件資源,是單片機(jī)所能接受 的軟件工作者的命令的最小工作單位。的軟件工作者的命令的最小工作單位。 指令系統(tǒng)指令系統(tǒng): :單片機(jī)所能執(zhí)行的指令集合。單片機(jī)所能執(zhí)行的指令集合。 機(jī)器語(yǔ)言機(jī)器語(yǔ)言: :指令以二進(jìn)制碼來(lái)表示。指令以二進(jìn)制碼來(lái)表示。 匯編語(yǔ)言匯編語(yǔ)言: :指令以助記符形式來(lái)表示。指令以助記符形式來(lái)表示。 機(jī)器語(yǔ)言

4、程序機(jī)器語(yǔ)言程序: :使用機(jī)器語(yǔ)言編寫(xiě)的程序。使用機(jī)器語(yǔ)言編寫(xiě)的程序。 匯編語(yǔ)言程序匯編語(yǔ)言程序: :使用匯編語(yǔ)言編寫(xiě)的程序。使用匯編語(yǔ)言編寫(xiě)的程序。 注意:注意:MCS-51MCS-51單片機(jī)指令系統(tǒng)不具有通用性,因此,用其編寫(xiě)單片機(jī)指令系統(tǒng)不具有通用性,因此,用其編寫(xiě) 的匯編語(yǔ)言程序也不具有通用性,不能移植。的匯編語(yǔ)言程序也不具有通用性,不能移植。 MCS-51MCS-51系列單片機(jī)的匯編語(yǔ)言指令系統(tǒng)共有系列單片機(jī)的匯編語(yǔ)言指令系統(tǒng)共有111111條指令條指令, ,其中其中4949條為單字節(jié)指令條為單字節(jié)指令,45,45條為雙字節(jié)指令條為雙字節(jié)指令,17,17條為三字節(jié)指令。條為三字節(jié)指令

5、。 從指令執(zhí)行的時(shí)間來(lái)看從指令執(zhí)行的時(shí)間來(lái)看, ,單機(jī)器周期指令單機(jī)器周期指令6464條條, ,雙機(jī)器周期指令雙機(jī)器周期指令4545條條, ,四機(jī)器周期指令四機(jī)器周期指令2 2條。條。 MCS-51MCS-51單片機(jī)的指令系統(tǒng)共有單片機(jī)的指令系統(tǒng)共有3333個(gè)功能個(gè)功能, ,用匯編語(yǔ)言編程時(shí)用匯編語(yǔ)言編程時(shí), ,只只需需4444個(gè)助記符。個(gè)助記符。 (1 1)、數(shù)據(jù)傳送類指令()、數(shù)據(jù)傳送類指令(2929條)條) (2 2)、算術(shù)運(yùn)算類指令()、算術(shù)運(yùn)算類指令(2424條)條) (3 3)、邏輯運(yùn)算及移位類指令()、邏輯運(yùn)算及移位類指令(2424條)條) (4 4)、控制轉(zhuǎn)移類指令()、控制轉(zhuǎn)

6、移類指令(1717條)條) (5 5)、位操作類指令()、位操作類指令(1717條)條) 2 2、MCS-51MCS-51單片機(jī)指令格式 指令格式:即指令的表示方法,其內(nèi)容包括指令的長(zhǎng)度和指令指令格式:即指令的表示方法,其內(nèi)容包括指令的長(zhǎng)度和指令內(nèi)部信息的安排。內(nèi)部信息的安排。采用助記符表示的匯編語(yǔ)言指令格式如下:采用助記符表示的匯編語(yǔ)言指令格式如下: 標(biāo)號(hào):標(biāo)號(hào): 目的操作數(shù)目的操作數(shù) , 源操作數(shù)源操作數(shù) ;注釋;注釋 (1 1)一條指令中標(biāo)號(hào)、操作數(shù)、注釋部分可有可無(wú),但操作碼一條指令中標(biāo)號(hào)、操作數(shù)、注釋部分可有可無(wú),但操作碼部分必不可少。部分必不可少。(2 2)標(biāo)號(hào)是程序員根據(jù)編程需要

7、給指令設(shè)定的符號(hào)地址,標(biāo)號(hào))標(biāo)號(hào)是程序員根據(jù)編程需要給指令設(shè)定的符號(hào)地址,標(biāo)號(hào)由由1 18 8個(gè)字符組成,不能用系統(tǒng)規(guī)定的寄存器名,也不能用指令個(gè)字符組成,不能用系統(tǒng)規(guī)定的寄存器名,也不能用指令系統(tǒng)中的助記符名稱,它的第一個(gè)字符必須是英文字,不能是數(shù)系統(tǒng)中的助記符名稱,它的第一個(gè)字符必須是英文字,不能是數(shù)字或其它符號(hào),標(biāo)號(hào)后必須用冒號(hào)字或其它符號(hào),標(biāo)號(hào)后必須用冒號(hào)“:”。(3 3)操作碼操作碼表示指令的操作種類,表示指令的操作種類,用來(lái)規(guī)定指令進(jìn)行什么操作用來(lái)規(guī)定指令進(jìn)行什么操作,常用常用操作碼操作碼的英文名稱或縮寫(xiě)形式來(lái)表示,的英文名稱或縮寫(xiě)形式來(lái)表示,操作碼操作碼后必須有一個(gè)后必須有一個(gè)或

8、多或多個(gè)個(gè)空格空格“ ”“ ”作間隔符。作間隔符。 例如:例如:MOV MOV 表示數(shù)據(jù)傳送操作,表示數(shù)據(jù)傳送操作,ADD ADD 表示加法操作。表示加法操作。(4 4)操作數(shù)表示指令操作的對(duì)象,它可能是一個(gè)具體的數(shù)據(jù)操作數(shù)表示指令操作的對(duì)象,它可能是一個(gè)具體的數(shù)據(jù),也可能是指出到哪里取得數(shù)據(jù)的地址或符號(hào)也可能是指出到哪里取得數(shù)據(jù)的地址或符號(hào)。 一條指令中,可能沒(méi)有(一條指令中,可能沒(méi)有(RETRET指令),也可能有一個(gè)(指令),也可能有一個(gè)(CPL CPL A A指令)、兩個(gè)(指令)、兩個(gè)(MOV A,#00HMOV A,#00H指令,指令, MOV 30H,#50H MOV 30H,#50

9、H指令)或三指令)或三個(gè)(個(gè)(CJNE A,#00H,NEXTCJNE A,#00H,NEXT)操作數(shù)。)操作數(shù)。 根據(jù)操作數(shù)的位置的不同,可分為目的(左)操作數(shù)和源根據(jù)操作數(shù)的位置的不同,可分為目的(左)操作數(shù)和源(右)操作數(shù),(右)操作數(shù),操作數(shù)之間也以逗號(hào)操作數(shù)之間也以逗號(hào)“,”相隔(相隔(乘法指令乘法指令MUL ABMUL AB和除法指令和除法指令DIV ABDIV AB除外)。除外)。(5 5)注釋是對(duì)指令的解釋說(shuō)明,用以提高程序的可讀性。注釋注釋是對(duì)指令的解釋說(shuō)明,用以提高程序的可讀性。注釋前必須加分號(hào)前必須加分號(hào)“;”。 (6)書(shū)寫(xiě)匯編語(yǔ)言指令必須注意以上規(guī)則。)書(shū)寫(xiě)匯編語(yǔ)言指令

10、必須注意以上規(guī)則。 3 3、指令格式中符號(hào)意義說(shuō)明 RnRn:當(dāng)前寄存器組的:當(dāng)前寄存器組的8 8個(gè)通用寄存器個(gè)通用寄存器R0R0R7R7(n=0n=07 7)。)。 RiRi:當(dāng)前寄存器組中的:當(dāng)前寄存器組中的2 2個(gè)寄存器個(gè)寄存器RORO,R1R1,可作地址指針,即,可作地址指針,即間接尋址的寄存器(間接尋址的寄存器(i=0,1i=0,1)。)。 direct:direct:內(nèi)部?jī)?nèi)部RAMRAM的的8 8位地址,既可以是內(nèi)部位地址,既可以是內(nèi)部RAMRAM的低的低128128個(gè)單元個(gè)單元地址(地址(0 0127127),也可以是專用寄存器的單元地址或符號(hào),如),也可以是專用寄存器的單元地址

11、或符號(hào),如I/OI/O端口,控制寄存器,狀態(tài)寄存器等(端口,控制寄存器,狀態(tài)寄存器等(128128255255)。)。 #data:#data:包含在指令中的包含在指令中的8 8位立即數(shù)。位立即數(shù)。 #data16:#data16:包含在指令中的包含在指令中的1616位立即數(shù)。位立即數(shù)。 addr16:addr16:表示表示1616位目的地址,只限于在位目的地址,只限于在LCALLLCALL和和LJMPLJMP指令中使用,指令中使用,目的地址范圍是目的地址范圍是64KB64KB的程序存儲(chǔ)器地址空間。的程序存儲(chǔ)器地址空間。 addr11addr11:表示:表示1111位目的地址,只限于在位目的地

12、址,只限于在ACALLACALL和和AJMPAJMP指令中使指令中使用,目的的地址必須存放在與下一條指令第一個(gè)字節(jié)同一個(gè)用,目的的地址必須存放在與下一條指令第一個(gè)字節(jié)同一個(gè)2KB2KB程序存儲(chǔ)器地址空間之內(nèi)。程序存儲(chǔ)器地址空間之內(nèi)。 Rel:Rel:相對(duì)轉(zhuǎn)移指令中的偏移量,為相對(duì)轉(zhuǎn)移指令中的偏移量,為8 8位帶符號(hào)補(bǔ)碼數(shù)。位帶符號(hào)補(bǔ)碼數(shù)。 DPTRDPTR:數(shù)據(jù)指針,可用作:數(shù)據(jù)指針,可用作1616位的地址寄存器。位的地址寄存器。 Bit:Bit:內(nèi)部?jī)?nèi)部RAMRAM或?qū)S眉拇嫫髦械闹苯訉ぶ肺?。或?qū)S眉拇嫫髦械闹苯訉ぶ肺弧?A A:累加器(直接尋址方式的累加器表示為:累加器(直接尋址方式的累加

13、器表示為AccAcc) B B:B B寄存器,用于寄存器,用于MULMUL和和DIVDIV指令中。指令中。 C C:進(jìn)位標(biāo)志位或布爾處理機(jī)中的累加位。:進(jìn)位標(biāo)志位或布爾處理機(jī)中的累加位。 :為間址寄存器或基址寄存器的前綴標(biāo)志。:為間址寄存器或基址寄存器的前綴標(biāo)志。 / /:位操作數(shù)的前綴,表示對(duì)該位狀態(tài)取反。:位操作數(shù)的前綴,表示對(duì)該位狀態(tài)取反。 (X X):某寄存器或某單元中的內(nèi)容。):某寄存器或某單元中的內(nèi)容。 (X X):由):由X X間接尋址的單元中的內(nèi)容。間接尋址的單元中的內(nèi)容。 :表示將箭頭右邊的內(nèi)容傳送至箭頭的左邊。:表示將箭頭右邊的內(nèi)容傳送至箭頭的左邊。 3.2 80C513.

14、2 80C51單片機(jī)指令尋址方式 MCS-51MCS-51單片機(jī)指令系統(tǒng)中的大多數(shù)指令執(zhí)行時(shí)都需要使用操作單片機(jī)指令系統(tǒng)中的大多數(shù)指令執(zhí)行時(shí)都需要使用操作數(shù),而在單片機(jī)中只有指定了操作數(shù)的存儲(chǔ)單元才能得到操作數(shù),數(shù),而在單片機(jī)中只有指定了操作數(shù)的存儲(chǔ)單元才能得到操作數(shù),因此,要得到操作數(shù),就只需找到操作數(shù)存放的單元即可。因此,要得到操作數(shù),就只需找到操作數(shù)存放的單元即可。 所謂尋址方式:即如何確定參與操作的數(shù)的真正所謂尋址方式:即如何確定參與操作的數(shù)的真正單元。單元。 根據(jù)操作數(shù)單元指定方法的不同,就有了不同的尋址方式。根據(jù)操作數(shù)單元指定方法的不同,就有了不同的尋址方式。 MCS-51MCS-

15、51單片機(jī)共有單片機(jī)共有7 7種尋址方式。種尋址方式。 由于指令中的操作數(shù)有目的(左)操作數(shù)和源(右)操作數(shù)之由于指令中的操作數(shù)有目的(左)操作數(shù)和源(右)操作數(shù)之分,因此,在講解尋址方式時(shí),均以源(右)操作數(shù)為例。分,因此,在講解尋址方式時(shí),均以源(右)操作數(shù)為例。(1 1)寄存器尋址方式)寄存器尋址方式 a a)、寄存器尋址就是指操作數(shù)在寄存器中,因此,指定了)、寄存器尋址就是指操作數(shù)在寄存器中,因此,指定了寄存器就得到了操作數(shù)。寄存器就得到了操作數(shù)。 b b)寄存器尋址的指令中寄存器尋址的指令中,以符號(hào)名稱來(lái)表示寄存器以符號(hào)名稱來(lái)表示寄存器。例例: : 假設(shè)原來(lái)(假設(shè)原來(lái)(A A)=30

16、H=30H,(,(R1R1)=40H=40H,現(xiàn)執(zhí)行指令,現(xiàn)執(zhí)行指令MOV AMOV A, R1 R1; 指令功能指令功能: :將將R1R1中的內(nèi)容中的內(nèi)容( (操作數(shù)操作數(shù)) )送送A A中;中; 指令執(zhí)行過(guò)程:指令執(zhí)行過(guò)程:AA(R1R1);); 指令執(zhí)行結(jié)果指令執(zhí)行結(jié)果:(A)=(A)=(R1R1)=40H=40H。 c c)尋址范圍:)尋址范圍:1 1)當(dāng)前工作寄存器組)當(dāng)前工作寄存器組R0R0R7R7; 2 2)部分專用寄存器)部分專用寄存器A A,ABAB,DPDPT TR R等。等。例:例:MOV P1, AMOV P1, A; 將累加器將累加器A A的內(nèi)容送到的內(nèi)容送到P1P1

17、口口 MOV P1, R4 MOV P1, R4;將寄存器;將寄存器R4R4的內(nèi)容送到的內(nèi)容送到P1P1口口 CLR A CLR A; 將累加器將累加器A A清清0 0 CPL A CPL A; 將累加器將累加器A A中的內(nèi)容取反中的內(nèi)容取反 MUL AB MUL AB; 將累加器將累加器A A的內(nèi)容與寄存器的內(nèi)容與寄存器B B的內(nèi)容相乘的內(nèi)容相乘(2 2)直接尋址方式)直接尋址方式 a a)直接尋址即指令所需的操作數(shù)直接以操作數(shù)存放的單元)直接尋址即指令所需的操作數(shù)直接以操作數(shù)存放的單元地址的形式給出。地址的形式給出。例:假設(shè)內(nèi)部例:假設(shè)內(nèi)部RAM 3AHRAM 3AH單元的內(nèi)容是單元的內(nèi)容

18、是88H88H,累加器,累加器A A的內(nèi)容是的內(nèi)容是10H10H,現(xiàn)執(zhí)行指令現(xiàn)執(zhí)行指令 MOV AMOV A,3AH3AH。 指令功能指令功能: :將將3AH3AH中的內(nèi)容中的內(nèi)容( (操作數(shù)操作數(shù)) )送送A A中;中; 指令執(zhí)行過(guò)程:指令執(zhí)行過(guò)程:AA(3AH3AH);); 指令執(zhí)行結(jié)果指令執(zhí)行結(jié)果:(A)=(A)=(3AH3AH)=88H=88H。 b b)采用直接尋址的指令一般是雙字節(jié)或三字節(jié)指令采用直接尋址的指令一般是雙字節(jié)或三字節(jié)指令。 c c)直接尋址是訪問(wèn)專用寄存器的唯一方法。直接尋址是訪問(wèn)專用寄存器的唯一方法。 d d)尋址范圍尋址范圍: 1 1)內(nèi)部?jī)?nèi)部RAMRAM低低12

19、8128個(gè)單元個(gè)單元,低低128128單元單元地址地址在指令中在指令中須須以以直接單元地址形式給出;直接單元地址形式給出; 2 2)專用寄存器,專用寄存器除以單元地址形式給出外,)專用寄存器,專用寄存器除以單元地址形式給出外,還可以以寄存器符號(hào)的形式給出。還可以以寄存器符號(hào)的形式給出。例:例:MOV P1, 20HMOV P1, 20H;將內(nèi)部;將內(nèi)部RAM 20HRAM 20H單元的內(nèi)容傳送到單元的內(nèi)容傳送到P1P1口口 MOV AMOV A, P0P0; 將將P0P0口的內(nèi)容傳送到口的內(nèi)容傳送到A A MOV A MOV A, 80H80H;將;將P0P0口的內(nèi)容傳送到口的內(nèi)容傳送到A A

20、(3 3)寄存器間接尋址方式)寄存器間接尋址方式 a a)寄存器間接尋址是指指令所需的操作數(shù)是通過(guò)寄存器間)寄存器間接尋址是指指令所需的操作數(shù)是通過(guò)寄存器間接得到的,寄存器中存放的則是操作數(shù)存放的單元地址。接得到的,寄存器中存放的則是操作數(shù)存放的單元地址。例:假設(shè)內(nèi)部例:假設(shè)內(nèi)部RAM 3AHRAM 3AH單元的內(nèi)容是單元的內(nèi)容是65H65H,寄存器,寄存器R0R0的內(nèi)容是的內(nèi)容是3AH3AH,現(xiàn)執(zhí)行指令現(xiàn)執(zhí)行指令 MOV AMOV A, R0R0。 指令功能指令功能: :先將先將R0R0的內(nèi)容的內(nèi)容3AH3AH作為內(nèi)部作為內(nèi)部RAMRAM的單元地址,再將的單元地址,再將內(nèi)部?jī)?nèi)部RAMRAM單

21、元地址為單元地址為3AH3AH中的內(nèi)容中的內(nèi)容65H(65H(操作數(shù)操作數(shù)) )送送A A中。中。 指令執(zhí)行過(guò)程:指令執(zhí)行過(guò)程: AA(R0R0)或)或 AA(3AH3AH) 指令執(zhí)行結(jié)果指令執(zhí)行結(jié)果:(A)=(A)=(R0R0)= =(3AH3AH)=65H=65H。 b b)間址寄存器:)間址寄存器:R0R0、R1R1、DPTRDPTR、SPSP。 指令中應(yīng)在間址寄存器名之前加前綴指令中應(yīng)在間址寄存器名之前加前綴,SP,SP除外除外。 c c)尋址范圍:)尋址范圍: 1 1)內(nèi)部)內(nèi)部RAMRAM低低128128單元,可使用單元,可使用R0R0,R1R1作間址寄存器,作間址寄存器,其其通用

22、形式為通用形式為Ri(I=0Ri(I=0或或1 1) )。例:例:MOV AMOV A, R1 R1 ;將;將R1R1指示的地址單元中內(nèi)容傳送至指示的地址單元中內(nèi)容傳送至A A中。中。 假設(shè)(假設(shè)(R1R1)=40H=40H,(,(40H40H)=90H=90H,即把內(nèi)部,即把內(nèi)部RAMRAM中中40H40H單元中單元中的內(nèi)容的內(nèi)容90H90H送到送到A A。 2 2)外部(片外)外部(片外)RAM 64KBRAM 64KB單元,可使用單元,可使用DPTRDPTR作間址寄存作間址寄存器,器,其形式為其形式為DPTRDPTR。 例:例:MOVX AMOVX A, DPTRDPTR;將;將DPTR

23、DPTR指示的外部指示的外部RAMRAM地址單元中的地址單元中的內(nèi)容傳送至內(nèi)容傳送至A A。 假設(shè)(假設(shè)(DPTRDPTR)=1000H=1000H,(,(1000H1000H)=80H=80H,即把外部,即把外部RAM 1000HRAM 1000H單元中的內(nèi)容單元中的內(nèi)容80H80H送到送到A A。 3 3)外部(片外)外部(片外)RAMRAM的低的低256256單元(單元(0000H0000H00FFH00FFH),它),它是一個(gè)特殊的尋址區(qū),既可以使用是一個(gè)特殊的尋址區(qū),既可以使用DPTRDPTR作間址寄存器尋址,也可作間址寄存器尋址,也可以使用以使用R0R0或或R1R1作間址寄存器尋址

24、。作間址寄存器尋址。 例:假設(shè)外部例:假設(shè)外部RAM 0020HRAM 0020H單元中的內(nèi)容是單元中的內(nèi)容是45H45H,現(xiàn)需將其送,現(xiàn)需將其送A A中。中。 MOV DPTRMOV DPTR, #0020H#0020H; MOVX AMOVX A, DPTRDPTR 或或 MOV R0MOV R0, #20H#20H; MOVX AMOVX A, R0R0; 4 4)在執(zhí)行堆棧操作指令(在執(zhí)行堆棧操作指令(PUSHPUSH,POPPOP)時(shí),也算為寄存器)時(shí),也算為寄存器間接尋址間接尋址 ,即以堆棧指針(,即以堆棧指針(SPSP)作間址寄存器的間接尋址方式。)作間址寄存器的間接尋址方式。

25、例:例:PUSH ACCPUSH ACC;將;將A A中的內(nèi)容壓入堆棧中的內(nèi)容壓入堆棧 POP ACCPOP ACC;將堆棧中的內(nèi)容彈出,送到;將堆棧中的內(nèi)容彈出,送到A A(4 4)立即尋址方式)立即尋址方式 a a)立即尋址即立即尋址即指令所需的指令所需的操作數(shù)操作數(shù)已已在指令中直接給出。在指令中直接給出。 通常,把通常,把直接直接出現(xiàn)在指令中的操作出現(xiàn)在指令中的操作數(shù)數(shù)稱之為立即數(shù)。為了稱之為立即數(shù)。為了與直接尋址指令中的直接與直接尋址指令中的直接單元單元地址相區(qū)別,地址相區(qū)別,一般應(yīng)一般應(yīng)在立即數(shù)前面在立即數(shù)前面加加“#”#”標(biāo)志。標(biāo)志。 b b)采用立即尋址的指令,一般為雙字節(jié)。第一

26、個(gè)字節(jié)為指采用立即尋址的指令,一般為雙字節(jié)。第一個(gè)字節(jié)為指令的操作碼,第二個(gè)字節(jié)為立即數(shù)。令的操作碼,第二個(gè)字節(jié)為立即數(shù)。 c c)尋址范圍:程序存儲(chǔ)器尋址范圍:程序存儲(chǔ)器空間空間。 例:例:MOV AMOV A, #40H#40H; 指令功能指令功能: :將程序存儲(chǔ)器中某單元的內(nèi)容將程序存儲(chǔ)器中某單元的內(nèi)容3AH (3AH (立即數(shù)立即數(shù)) )送送A A中中 指令執(zhí)行過(guò)程:指令執(zhí)行過(guò)程: A3AHA3AH 指令執(zhí)行結(jié)果:指令執(zhí)行結(jié)果:(A)=(A)=3AH3AH d d)除除8 8位立即數(shù)外,位立即數(shù)外,MCS-51MCS-51指令系統(tǒng)中還有一條指令系統(tǒng)中還有一條1616位立即尋位立即尋址指

27、令,即:址指令,即:MOV DPTRMOV DPTR,#data16#data16,其功能是把,其功能是把1616位立即數(shù)送位立即數(shù)送數(shù)據(jù)指針數(shù)據(jù)指針DPTRDPTR。 例:例:MOV DPTRMOV DPTR, #1000H#1000H;指令功能指令功能: :將程序存儲(chǔ)器中某單元的內(nèi)容將程序存儲(chǔ)器中某單元的內(nèi)容1000H(1000H(立即數(shù)立即數(shù)) )送送DPTRDPTR中中 MOV P1, #55HMOV P1, #55H ;將立即數(shù);將立即數(shù)55H55H送送P1P1口口 MOVMOV 20H, #55H 20H, #55H ;將立即數(shù);將立即數(shù)55H55H送送20H20H單元單元 MOV

28、MOV R0, #20H R0, #20H ;將立即數(shù);將立即數(shù)20H20H送寄存器送寄存器R0R0(5 5)變址尋址方式)變址尋址方式 a a)變址尋址變址尋址用于訪問(wèn)程序存儲(chǔ)器中的常數(shù)或數(shù)據(jù)表格。用于訪問(wèn)程序存儲(chǔ)器中的常數(shù)或數(shù)據(jù)表格。 變址尋址即是以變址尋址即是以DPTRDPTR或或PCPC作為基址寄存器,以累加器作為基址寄存器,以累加器A A為為變址寄存器,并以兩者的內(nèi)容相加形成變址寄存器,并以兩者的內(nèi)容相加形成1616位地址作為位地址作為目的目的操作數(shù)操作數(shù)地址地址,以達(dá)到訪問(wèn)程序存儲(chǔ)器中的常數(shù)或數(shù)據(jù)表格的目的,以達(dá)到訪問(wèn)程序存儲(chǔ)器中的常數(shù)或數(shù)據(jù)表格的目的。 b b)尋址范圍尋址范圍:

29、程序存儲(chǔ)器程序存儲(chǔ)器空間空間。 c c)指令數(shù)目)指令數(shù)目:三條,均為一字節(jié)指令三條,均為一字節(jié)指令 MOVC AMOVC A, A+DPTRA+DPTR; 指令執(zhí)行過(guò)程:指令執(zhí)行過(guò)程: AA(A A)+ +(DPTRDPTR) 指令執(zhí)行結(jié)果:(指令執(zhí)行結(jié)果:(A A)= =(A A)+ +(DPTRDPTR) MOVC A, A+PCMOVC A, A+PC; 指令執(zhí)行過(guò)程:指令執(zhí)行過(guò)程: AA(A A)+ +(PCPC) 指令執(zhí)行結(jié)果:(指令執(zhí)行結(jié)果:(A A)= =(A A)+ +(PCPC) JMP A+DPTRJMP A+DPTR 指令執(zhí)行過(guò)程:指令執(zhí)行過(guò)程: PCPC(A A)+

30、+(DPTRDPTR) 指令執(zhí)行結(jié)果:(指令執(zhí)行結(jié)果:(PCPC)= =(A A)+ +(DPTRDPTR) d d)注意:三條指令中)注意:三條指令中A A的內(nèi)容均為的內(nèi)容均為8 8位二進(jìn)制無(wú)符號(hào)數(shù)。位二進(jìn)制無(wú)符號(hào)數(shù)。 (6 6)位尋址方式)位尋址方式 a a)位尋址即對(duì)二進(jìn)制數(shù)據(jù)位進(jìn)行尋址。)位尋址即對(duì)二進(jìn)制數(shù)據(jù)位進(jìn)行尋址。 b b)尋址范圍:)尋址范圍: 1)1)、內(nèi)部、內(nèi)部RAMRAM中的位尋址區(qū)(單元地址中的位尋址區(qū)(單元地址20H20H2FH2FH),),128128個(gè)個(gè)位,位地址是位,位地址是00H00H7FH7FH。位地址區(qū)中的位有兩種表示方法:。位地址區(qū)中的位有兩種表示方法:

31、 直接使用位地址表示;單元地址加位數(shù)表示直接使用位地址表示;單元地址加位數(shù)表示 例:例:MOV CMOV C, 20H20H;將位地址為;將位地址為20H20H的位狀態(tài)傳送給累加位的位狀態(tài)傳送給累加位C C。 例:例:MOV CMOV C, 24H.024H.0;將位地址為;將位地址為20H20H的位狀態(tài)傳累加位的位狀態(tài)傳累加位C C。 例:例:SETB 3DHSETB 3DH;將內(nèi)部;將內(nèi)部RAMRAM位尋址區(qū)中的位尋址區(qū)中的3DH3DH位置位置1 1。 假設(shè)內(nèi)部假設(shè)內(nèi)部RAM 27HRAM 27H單元的內(nèi)容是單元的內(nèi)容是00H00H,執(zhí)行,執(zhí)行SETB 3DHSETB 3DH后,由于后,由

32、于3DH3DH對(duì)應(yīng)內(nèi)部對(duì)應(yīng)內(nèi)部RAM 27HRAM 27H的第的第5 5位,因此該位變?yōu)槲?,因此該位變?yōu)? 1,也就是,也就是27H27H單元單元的內(nèi)容變?yōu)榈膬?nèi)容變?yōu)?0H20H。該指令的執(zhí)行過(guò)程如圖所示。該指令的執(zhí)行過(guò)程如圖所示。 2)2)、專用寄存器的可尋址位、專用寄存器的可尋址位 可供位尋址的專用寄存器有可供位尋址的專用寄存器有1111個(gè),個(gè),PSWPSW,IP IEIP IE,POPO,P1P1,P2P2,P3P3,SCONSCON,A A,TCONTCON,B B,實(shí)有可尋址位,實(shí)有可尋址位8383位。位。 專用寄存器的可尋址位有四種表示方法:專用寄存器的可尋址位有四種表示方法: 直

33、接使用位地址表示直接使用位地址表示例:例:MOV CMOV C,D5HD5H;將;將PSWPSW中位地址為中位地址為D5HD5H的位狀態(tài)傳給累加位的位狀態(tài)傳給累加位C C 單元地址加位數(shù)表示單元地址加位數(shù)表示例:例:MOV CMOV C,D0H.5D0H.5;將;將PSWPSW中位地址為中位地址為D5HD5H的位狀態(tài)傳給累加位的位狀態(tài)傳給累加位C C 位名稱表示位名稱表示例:例:MOV CMOV C, F0F0;將;將PSWPSW中位地址為中位地址為D5HD5H的位狀態(tài)傳給累加位的位狀態(tài)傳給累加位C C 專用寄存器符號(hào)加位數(shù)表示專用寄存器符號(hào)加位數(shù)表示例:例:MOV CMOV C,PSW.5P

34、SW.5;將;將PSWPSW中位地址為中位地址為D5HD5H的位狀態(tài)傳給累加位的位狀態(tài)傳給累加位C C(7 7)相對(duì)尋址方式)相對(duì)尋址方式 a a)相對(duì)尋址是相對(duì)尋址是為解決程序轉(zhuǎn)移而設(shè)置的,為轉(zhuǎn)移指令所用。為解決程序轉(zhuǎn)移而設(shè)置的,為轉(zhuǎn)移指令所用。 相對(duì)尋址是將程序計(jì)數(shù)器相對(duì)尋址是將程序計(jì)數(shù)器PCPC的當(dāng)前的當(dāng)前值值與指令與指令中給出的地址中給出的地址偏偏移量移量(relrel)相加,其和為轉(zhuǎn)移指令的目的地址。相加,其和為轉(zhuǎn)移指令的目的地址。 注意:注意:PCPC當(dāng)前值是指執(zhí)行完該轉(zhuǎn)移指令后的當(dāng)前值是指執(zhí)行完該轉(zhuǎn)移指令后的PCPC值,即轉(zhuǎn)移指值,即轉(zhuǎn)移指令的令的PCPC值加上轉(zhuǎn)移指令的字節(jié)數(shù)。

35、值加上轉(zhuǎn)移指令的字節(jié)數(shù)。 轉(zhuǎn)移指令轉(zhuǎn)移轉(zhuǎn)移指令轉(zhuǎn)移到的目的地址到的目的地址= =轉(zhuǎn)移指令轉(zhuǎn)移指令PCPC當(dāng)前值當(dāng)前值+ +偏移量偏移量relrel= =轉(zhuǎn)移指令轉(zhuǎn)移指令首首地址地址+ +轉(zhuǎn)移指令字節(jié)數(shù)轉(zhuǎn)移指令字節(jié)數(shù)+rel+rel。 偏移量偏移量relrel是一個(gè)帶符號(hào)的是一個(gè)帶符號(hào)的8 8位二進(jìn)制補(bǔ)碼數(shù),所能表示數(shù)的位二進(jìn)制補(bǔ)碼數(shù),所能表示數(shù)的范圍范圍為為-128-128+127+127。 b b)尋址范圍:)尋址范圍:程序存儲(chǔ)器程序存儲(chǔ)器空間空間 具體地說(shuō),相對(duì)轉(zhuǎn)移是以轉(zhuǎn)移指令所在地址為基點(diǎn),向前具體地說(shuō),相對(duì)轉(zhuǎn)移是以轉(zhuǎn)移指令所在地址為基點(diǎn),向前 (地址增加方向)最大可轉(zhuǎn)移(地址增加方向)

36、最大可轉(zhuǎn)移(127+127+轉(zhuǎn)移指令字節(jié)數(shù))個(gè)單元地轉(zhuǎn)移指令字節(jié)數(shù))個(gè)單元地址,向后(地址減少方向)最大可轉(zhuǎn)移(址,向后(地址減少方向)最大可轉(zhuǎn)移(128-128-轉(zhuǎn)移指令字節(jié)數(shù))轉(zhuǎn)移指令字節(jié)數(shù))個(gè)單元地址。個(gè)單元地址。3.3 80C513.3 80C51單片機(jī)指令分類介紹 MCS-51MCS-51單片機(jī)指令系統(tǒng)包括單片機(jī)指令系統(tǒng)包括111111條指令,按功能可以劃分為條指令,按功能可以劃分為以下以下5 5類:類: 數(shù)據(jù)傳送類指令(數(shù)據(jù)傳送類指令(2929條);條); 算術(shù)運(yùn)算類指令(算術(shù)運(yùn)算類指令(2424條);條); 邏輯運(yùn)算類指令(邏輯運(yùn)算類指令(2424條);條); 控制轉(zhuǎn)移類指令(控

37、制轉(zhuǎn)移類指令(1717條);條); 位操作類指令(位操作類指令(1717條);條);3.3.1 3.3.1 數(shù)據(jù)傳送類指令 a a)指令數(shù)目:)指令數(shù)目:2929條條; b b)指令通用格式:)指令通用格式: 助記符操作碼助記符操作碼 目的操作數(shù),目的操作數(shù), 源操作數(shù);源操作數(shù); c c)指令功能:數(shù)據(jù)傳送,屬于數(shù)據(jù)復(fù)制性質(zhì);)指令功能:數(shù)據(jù)傳送,屬于數(shù)據(jù)復(fù)制性質(zhì); d d)助記符類型()助記符類型(8 8種):種): MOVMOV, MOVCMOVC, MOVXMOVX XCHXCH, XCHDXCHD, SWAPSWAP, PUSHPUSH, POPPOP e e)尋址方式)尋址方式 源

38、操作數(shù)源操作數(shù):寄存器,寄存器間接、直接、立即、變址寄存器,寄存器間接、直接、立即、變址尋址;尋址; 目的目的操作數(shù)操作數(shù):寄存器,寄存器間接、直接寄存器,寄存器間接、直接尋址尋址1 1、內(nèi)部、內(nèi)部RAMRAM數(shù)據(jù)傳送指令組數(shù)據(jù)傳送指令組 a a)立即數(shù)傳送指令)立即數(shù)傳送指令指令格式相應(yīng)操作操作結(jié)果說(shuō)明MOV AMOV A, #data #data Adata Adata (A A)=data=dataMOV direct, #data MOV direct, #data directdata directdata (directdirect)=data=dataMOV RnMOV Rn,

39、#data #data Rndata Rndata ( Rn Rn )=data=datan=0n=07 7MOV Ri, #dataMOV Ri, #data(Ri)data(Ri)data( RiRi)=data=datai=0,1i=0,1MOV DPTRMOV DPTR,#data16 #data16 DPTRdata16 DPTRdata16 (DPTRDPTR)=data16=data16例:例:MOV A, #20HMOV A, #20H; 指令執(zhí)行后(指令執(zhí)行后(A A)=20H=20H例:例:MOV 20HMOV 20H, #20H#20H;指令執(zhí)行后(;指令執(zhí)行后(20H2

40、0H)=20H=20H例:例:MOV SPMOV SP, #60H#60H;指令執(zhí)行后(;指令執(zhí)行后(SPSP)=60H=60H例:例:MOV BMOV B, #30H#30H;指令執(zhí)行后(;指令執(zhí)行后(B B)=30H=30H例:例:MOV R1, #20HMOV R1, #20H; 指令執(zhí)行后(指令執(zhí)行后(R1R1)=20H=20H例:例:MOV R0, #20HMOV R0, #20H; 指令執(zhí)行后(指令執(zhí)行后(R0R0)=20H=20H MOV R0, #30H MOV R0, #30H; 指令執(zhí)行后指令執(zhí)行后( ((R0R0))=30H)=30H或(或(20H)=30H20H)=30

41、H例:例:MOV DPTRMOV DPTR, #1020H#1020H; 指令執(zhí)行后指令執(zhí)行后(DPTR)= 1020H(DPTR)= 1020H; (DPHDPH)=10H=10H, (DPLDPL)=20H=20H 本指令是三字節(jié)指令,第一個(gè)字節(jié)是操作碼信息,第二、第本指令是三字節(jié)指令,第一個(gè)字節(jié)是操作碼信息,第二、第三字節(jié)分別是操作數(shù)(立即數(shù))的高、低三字節(jié)分別是操作數(shù)(立即數(shù))的高、低8 8位信息,其二進(jìn)制目位信息,其二進(jìn)制目標(biāo)代碼存放格式如下:標(biāo)代碼存放格式如下:操作碼1001000010010000程序存儲(chǔ)器立即數(shù)高8 8位(DPHDPH)0001000000010000立即數(shù)低8

42、 8位(DPLDPL)0010000000100000 b b)內(nèi)部)內(nèi)部RAMRAM單元之間的數(shù)據(jù)傳送指令單元之間的數(shù)據(jù)傳送指令指令格式相應(yīng)操作操作結(jié)果MOV direct2MOV direct2, direct1direct1direct2(direct1) direct2(direct1) (direct2direct2)=(direct1)=(direct1)MOV direct, RnMOV direct, Rndirect(Rn) direct(Rn) (directdirect)=(Rn)=(Rn)MOV RnMOV Rn, directdirectRn(direct)Rn(di

43、rect)(RnRn)=(direct)=(direct)MOV direct, RiMOV direct, Ridirectdirect( RiRi)(directdirect)= =( RiRi)MOV RiMOV Ri, directdirect(RiRi)(direct)(direct)(RiRi)=(direct)=(direct)例:例:MOV 30H, 20HMOV 30H, 20H; 指令執(zhí)行后(指令執(zhí)行后(30H30H)= =(20H20H)例:例:MOV P1, 20HMOV P1, 20H; 指令執(zhí)行后(指令執(zhí)行后(P1P1)= =(20H20H)例:例:MOV P2,

44、P0MOV P2, P0; 指令執(zhí)行后(指令執(zhí)行后(P2P2)= =(P0P0)例:例:MOV 40H, P3MOV 40H, P3; 指令執(zhí)行后(指令執(zhí)行后(40H40H)= =(P3P3)例:例:MOV 0A0H, R7MOV 0A0H, R7; 指令執(zhí)行后(指令執(zhí)行后(P2P2)= =(R7R7)例:例:MOV PSW, R1MOV PSW, R1; 指令執(zhí)行后(指令執(zhí)行后(PSWPSW)= =(R1R1)例:例:MOV R2, 20HMOV R2, 20H; 指令執(zhí)行后(指令執(zhí)行后(R2R2)= =(20H20H)例:例:MOV R3, BMOV R3, B; 指令執(zhí)行后(指令執(zhí)行后(

45、R3R3)= =(B B)例:例:MOV 40H, R0MOV 40H, R0; 指令執(zhí)行后(指令執(zhí)行后(40H40H)= =(R0R0)例:例:MOV P0, R1MOV P0, R1; 指令執(zhí)行后(指令執(zhí)行后(P0P0)= = (R1R1)例:例:MOV R0, 0A0HMOV R0, 0A0H;指令執(zhí)行后(;指令執(zhí)行后(R0R0)= =(P2P2)例:例:MOV R1, 30HMOV R1, 30H; 指令執(zhí)行后(指令執(zhí)行后(R1R1)= =(30H30H) c c)通過(guò)累加器的數(shù)據(jù)傳送指令)通過(guò)累加器的數(shù)據(jù)傳送指令指令格式相應(yīng)操作操作結(jié)果MOV AMOV A, RnRnA(Rn) A(

46、Rn) (A)=(Rn)(A)=(Rn)MOV Rn, AMOV Rn, ARn Rn (A A)(RnRn)= =(A A)MOV AMOV A, directdirectA(direct)A(direct)(A A)=(direct)=(direct)MOV direct, AMOV direct, Adirectdirect(A A)(directdirect)= =(A A)MOV A, Ri MOV A, Ri AA(RiRi)(A A)= = (RiRi)MOV RiMOV Ri, A A(RiRi)(A)(A)(RiRi)=(A)=(A)例:例:MOV A, R0MOV A, R

47、0; 指令執(zhí)行后(指令執(zhí)行后(A A)= =(R0R0)例:例:MOV R3, AMOV R3, A; 指令執(zhí)行后(指令執(zhí)行后(R3R3)= =(A A)例:例:MOV A, BMOV A, B; 指令執(zhí)行后(指令執(zhí)行后(A A)= =(B B)例:例:MOV A, 40HMOV A, 40H; 指令執(zhí)行后(指令執(zhí)行后(A A)= = (40H40H)例:例:MOV PSW, AMOV PSW, A; 指令執(zhí)行后(指令執(zhí)行后(PSWPSW)= = (A A)例:例:MOV 60H, AMOV 60H, A; 指令執(zhí)行后(指令執(zhí)行后(60H60H)= = (A A)例:例:MOV A, R0MO

48、V A, R0; 指令執(zhí)行后(指令執(zhí)行后(A A)= = (R0R0)例:例:MOV R1, AMOV R1, A; 指令執(zhí)行后(指令執(zhí)行后(R1R1)= =(A A)(3 3)外部RAMRAM數(shù)據(jù)傳送指令組指令格式相應(yīng)操作操作結(jié)果MOVX AMOVX A, DPTRDPTRAA((DPTR)(DPTR)) (A A)= =((DPTR)(DPTR))MOVX DPTRMOVX DPTR, A A(DPTR)(A) (DPTR)(A) ( (DPTR)(DPTR))=(A)=(A)MOVX AMOVX A, RiRiAA((Ri)(Ri)) (A A)= =((Ri)(Ri)) MOVX Ri

49、MOVX Ri, A A(Ri)(Ri)(A A)((Ri)(Ri))= =(A A)例:將外部例:將外部RAM 2000HRAM 2000H單元的內(nèi)容單元的內(nèi)容20H20H送至送至A A中。中。 MOV DPTRMOV DPTR, #2000H#2000H;外部;外部RAM 2000HRAM 2000H單元地址作為單元地址作為1616位立位立 即數(shù)送數(shù)據(jù)指針即數(shù)送數(shù)據(jù)指針DPTRDPTR MOVX A MOVX A, DPTRDPTR; 外部外部RAM 2000HRAM 2000H單元的內(nèi)容單元的內(nèi)容20H20H送送A A (A A)= =(DPTRDPTR)= =(2000H2000H)=

50、20H=20H例:將累加器例:將累加器A A中的內(nèi)容中的內(nèi)容40H40H送至外部送至外部RAM 4000HRAM 4000H單元中。單元中。 MOV DPTRMOV DPTR, #4000H#4000H;外部;外部RAM 4000HRAM 4000H單元地址作為單元地址作為1616位立位立 即數(shù)送數(shù)據(jù)指針即數(shù)送數(shù)據(jù)指針DPTRDPTR MOVX DPTR MOVX DPTR, A A ; A A的內(nèi)容的內(nèi)容40H40H送外部送外部RAM 4000HRAM 4000H單元單元 (DPTRDPTR)= =(4000H4000H)= =(A A)=40H=40HA A外外部部R RA AM M2 2

51、0 0H H外外部部R RA AM M4 40 00 00 0H H單單元元A A4 40 0H H2 20 00 00 0H H單單元元例:將外部例:將外部RAM 0050HRAM 0050H單元的內(nèi)容單元的內(nèi)容20H20H送至送至A A中。中。 a a)MOV DPTRMOV DPTR, #0050H#0050H;外部;外部RAM 0050HRAM 0050H單元地址作為單元地址作為1616位立位立 即數(shù)送數(shù)據(jù)指針即數(shù)送數(shù)據(jù)指針DPTRDPTR MOVX A MOVX A, DPTRDPTR; 外部外部RAM 0050HRAM 0050H單元的內(nèi)容單元的內(nèi)容20H20H送送A A (A A

52、)= =(DPTRDPTR)= =(2000H2000H)=20H=20H b b)MOV R0MOV R0, #50H#50H; 外部外部RAM 0050HRAM 0050H單元地址作為單元地址作為8 8位立位立 即數(shù)送間址寄存器即數(shù)送間址寄存器R0R0 MOVX A MOVX A, R0R0; 外部外部RAM 0050HRAM 0050H單元的內(nèi)容單元的內(nèi)容20H20H送送A A (A A)= =(R0R0)= =(50H50H)=20H=20H例:將累加器例:將累加器A A中的內(nèi)容中的內(nèi)容40H40H送至外部送至外部RAM 0050HRAM 0050H單元中。單元中。 a a)MOV D

53、PTRMOV DPTR, #0050H#0050H;外部;外部RAM 0050HRAM 0050H單元地址作為單元地址作為1616位立位立 即數(shù)送數(shù)據(jù)指針即數(shù)送數(shù)據(jù)指針DPTRDPTR MOVX DPTRMOVX DPTR, A A ; A A的內(nèi)容的內(nèi)容40H40H送外部送外部RAM 0050HRAM 0050H單元單元 (DPTRDPTR)= =(0050H0050H)= =(A A)=40H=40H b b)MOV R1MOV R1, #50H#50H; 外部外部RAM 0050HRAM 0050H單元地址作為單元地址作為8 8位立位立 即數(shù)送間址寄存器即數(shù)送間址寄存器R1R1 MOVX

54、 R1 MOVX R1, A A; A A的內(nèi)容的內(nèi)容40H40H送外部送外部RAM 0050HRAM 0050H單元單元 (R1R1)= =(50H50H)= =(A A)=40H=40HA A外外部部R RA AM M2 20 0H H外外部部R RA AM M0 00 05 50 0H H單單元元A A4 40 0H H0 00 05 50 0H H單單元元例:將內(nèi)部例:將內(nèi)部RAM 60HRAM 60H單元的內(nèi)容單元的內(nèi)容40H40H送至外部送至外部RAM 4000HRAM 4000H單元中。單元中。 MOV AMOV A, 60H60H; 將將60H60H單元的內(nèi)容單元的內(nèi)容40H4

55、0H先送先送A A中,(中,(A A)=40H=40H MOV DPTR MOV DPTR, #4000H#4000H;外部;外部RAM 4000HRAM 4000H單元地址送單元地址送DPTRDPTR MOVX DPTR MOVX DPTR, A A ; A A的內(nèi)容的內(nèi)容40H40H送外部送外部RAM 4000HRAM 4000H單元單元 (DPTRDPTR)= =(4000H4000H)= =(A A)=40H=40H內(nèi)內(nèi)部部R RA AM M4 40 0H H外外部部R RA AM M4 40 00 00 0H H單單元元A A4 40 0H H6 60 0H H單單元元例:將外部例:

56、將外部RAM 4000HRAM 4000H單元的內(nèi)容單元的內(nèi)容40H40H送至內(nèi)部送至內(nèi)部RAM 60HRAM 60H單元中。單元中。 MOV DPTRMOV DPTR, #4000H#4000H;外部;外部RAM 4000HRAM 4000H單元地址送單元地址送DPTRDPTR MOVX A MOVX A, DPTR DPTR ;外部;外部RAM 4000HRAM 4000H單元的內(nèi)容單元的內(nèi)容40H40H送送A A (A A)= =(DPTRDPTR)= =(4000H4000H)=40H=40H MOV 60H MOV 60H, A A ;將;將A A的內(nèi)容的內(nèi)容40H40H送送60H6

57、0H單元,(單元,(60H60H)=40H=40H內(nèi)內(nèi)部部R RA AM M4 40 0H H外外部部R RA AM M4 40 00 00 0H H單單元元A A4 40 0H H6 60 0H H單單元元例:將外部例:將外部RAM 4000HRAM 4000H單元內(nèi)容單元內(nèi)容40H40H送至外部送至外部RAM 0050HRAM 0050H單元中。單元中。 MOV DPTRMOV DPTR, #4000H#4000H;外部;外部RAM 4000HRAM 4000H單元地址送單元地址送DPTRDPTR MOVX A MOVX A, DPTR DPTR ;外部;外部RAM 4000HRAM 40

58、00H單元的內(nèi)容單元的內(nèi)容40H40H送送A A (A A)= =(DPTRDPTR)= =(4000H4000H)=40H=40H MOV R0 MOV R0, #50H #50H ;外部;外部RAM 0050HRAM 0050H單元地址送間址寄存器單元地址送間址寄存器R0R0 MOVX R0 MOVX R0,A A; 外部外部RAMRAM(0050H0050H)= =(A A)=40H=40H外外部部R RA AM M4 40 0H H外外部部R RA AM M4 40 00 00 0H H單單元元A A4 40 0H H0 00 05 50 0H H單單元元例:將內(nèi)部例:將內(nèi)部RAM 6

59、0HRAM 60H單元內(nèi)容單元內(nèi)容40H40H送至內(nèi)部送至內(nèi)部RAM 50HRAM 50H單元中。單元中。 a a)MOV 50HMOV 50H, 60H60H;內(nèi)部;內(nèi)部RAM 60HRAM 60H單元內(nèi)容單元內(nèi)容40H40H送至內(nèi)部送至內(nèi)部RAM RAM 50H 50H單元中,(單元中,(50H50H)= =(60H60H)=40H=40H b b)MOV AMOV A,60H60H;先將內(nèi)部;先將內(nèi)部RAM 60HRAM 60H單元內(nèi)容單元內(nèi)容40H40H送送A A,(A(A)=40H=40H MOV 50H MOV 50H,A A;再將;再將A A的內(nèi)容送內(nèi)部的內(nèi)容送內(nèi)部RAM 50H

60、RAM 50H單元,單元,(50H(50H)=40H=40H內(nèi)內(nèi)部部R RA AM M4 40 0H H內(nèi)內(nèi)部部R RA AM M6 60 0H H單單元元A A4 40 0H H5 50 0H H單單元元 注意:注意: 1 1)外部)外部RAMRAM與外部與外部RAMRAM單元之間、外部單元之間、外部RAMRAM與內(nèi)部與內(nèi)部RAMRAM單元之單元之間的數(shù)據(jù)傳送必須采用寄存器間接尋址的方式,而且必須通過(guò)累間的數(shù)據(jù)傳送必須采用寄存器間接尋址的方式,而且必須通過(guò)累加器加器A A進(jìn)行;進(jìn)行; 2 2)MCS-51MCS-51指令系統(tǒng)中沒(méi)有專用的存儲(chǔ)器讀寫(xiě)指令,實(shí)際上指令系統(tǒng)中沒(méi)有專用的存儲(chǔ)器讀寫(xiě)指令

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論