51單片機(jī)尋址方式_第1頁
51單片機(jī)尋址方式_第2頁
51單片機(jī)尋址方式_第3頁
51單片機(jī)尋址方式_第4頁
51單片機(jī)尋址方式_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、思考題與習(xí)題部分參考答案51單片機(jī)的尋址方式尋址方式:指定操作數(shù)所在單元的方法。在我們學(xué)習(xí)的8051單片機(jī)中,有7種尋址方法,下面我們將逐一進(jìn)行 分析。一、立即尋址用“#”作前綴MOV A #20H在這種尋址方式中,指令多是雙字節(jié)的。立即數(shù)就是存放在程序存儲 器中的常數(shù),換句話說就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。例如: MOV A, #3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能 是把立即數(shù)3AH送入累加器A中。MOV DPTR, #8200H在前面學(xué)單片機(jī)的專用寄存器時,我們已學(xué)過, DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組 成。這

2、條指令的意思就是把立即數(shù)的高 8位(即82H)送入DPH寄存 器,把立即數(shù)的低8位(即00H)送入DPL寄存器。二、直接尋址指令中直接給出操作數(shù)的地址。MOV A, 30H;這條指令中操作數(shù)就在 30H單元中,也就是30H是 操作數(shù)的地址,并非操作數(shù)。MOV 30H, DPH在80C51單片機(jī)中,直接地址只能用來表示內(nèi)部數(shù)據(jù)存儲器、位地址 空間以及特殊功能寄存器, 具體的說就是:1、內(nèi)部數(shù)據(jù)存儲器RAM氐128單元。在指令中是以直接單元地址形 式給出。我們知道低128單元的地址是00H-7FH.在指令中直接以單元地址形 式給出這句話的意思就是這 0-127共128位的任何一位,例如0位是 以0

3、0H這個單元地址形式給出、1位就是以01H單元地址給出、127 位就是以7FH形式給出。2、位尋址區(qū)。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV IE , #8 5H前面的學(xué)習(xí)我們已知道,中斷允許寄存器 IE的地址是80H,那么 也就是此指令也可以以 MOV 80H, #85H的形式表述。直接尋址是唯一能訪問特殊功能寄存器的尋址方式!大家來分析下面幾條指令:MOV 65H A;將A的內(nèi)容送入內(nèi)部RAM勺65H單兀地址中MOV A direct;將直接地址單元的內(nèi)容送入 A中MOV direct,d

4、irect;將直接地址單元的內(nèi)容送直接地址單元MOV IE,#85H;將立即數(shù)85H送入中斷允許寄存器IE前面我們已學(xué)過,數(shù)據(jù)前面加了 “#”的、表示后面的數(shù)是立即數(shù)(如 #85H,就表示85H就是一個立即數(shù)), 數(shù)據(jù)前面沒有加“ #”號的, 就表示后面的是一個地址地址 (如,MOV 65H A這條指令的65H就是 一個單元地址)。3、寄存器尋址操作數(shù)存放在工作寄存器 R0 R7中,或寄存器B中。MOV A R2寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當(dāng) 前寄存器組(工作寄存器組的選擇在前面專用寄存器的學(xué)習(xí)中,我們 已知道,是由程序狀態(tài)字 PSV的R

5、S1和RS0來確定的),因此在使 用前常需要通過對PSV的RS1 RS0位的狀態(tài)設(shè)置,來進(jìn)行對當(dāng)前工 作寄存器組的選擇。2、部分專用寄存器。例如,累加器 A、通用寄存器B、地址寄存器DP TR和進(jìn)位位C¥寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱就能 得到操作數(shù)。例如:MOV A R0這條指令的意思是把寄存器 R0的內(nèi)容傳送到累加器A中,操作數(shù)就在 R0中。INC R3這條指令的意思是把寄存器 R3中的內(nèi)容加1從前面的學(xué)習(xí)中我們應(yīng)可以理解到, 其實(shí)寄存器尋址方式就是對由 PSW程序狀態(tài)字確定的工作寄存器組的 R0-R7進(jìn)行讀/寫操作。4、寄存器間接尋址指令中寄存器的內(nèi)容

6、作為操作數(shù)存放的地址,指令中 間接尋址寄存器 前用“表示前綴。寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過寄存器間接得到的,因此稱為寄存器間接尋址。A:MCS-51單片機(jī)規(guī)定工作寄存器的RQ R1做為間接尋址寄存器。用 于尋址內(nèi)部或外部數(shù)據(jù)存儲器的256個單元。為什么會是256個單元 呢?我們知道,R0或者R1都是一個8位的寄存器,所以它的尋址空 間就是2的八次方=256。例:MOV R0 #30H ;將值30H加載到R0中MOV A , R0;把內(nèi)部RA觀址30H內(nèi)的值放到累加器 A中MOVX A , R0;把外部RA觀址30H內(nèi)的值放到累加器 A中B:大家想想,如果用D

7、PTR故為間址寄存器,那么它的尋址范圍是多少 呢? DPT以一個16位的寄存器,所以它的尋址范圍就是 2的十六次 方=65536=64K因用DPTR故為間址寄存器的尋址空間是 64K,所以訪 問片外數(shù)據(jù)存儲器時,我們通常就用 DPTRt為間址寄存器。例:MOV DPTR #1234H ;將 DPTF®設(shè)為 1234H (16 位)MOVX A , DPTR ;將外部RA賊I/O 地址1234H內(nèi)的值放 到累加器A中C:在執(zhí)行PUSH壓棧)和POP(出棧)指令時,采用堆棧指針 SP作寄 存器間接尋址。例:PUSH 30H;把內(nèi)部RA觀址30H內(nèi)的值放到堆棧區(qū)中堆棧區(qū)是由SP寄存器指定的

8、,如果執(zhí)行上面這條命令前,SP為60H,命令執(zhí)行后會把內(nèi)部 RA觀址30H內(nèi)的值放到RAM勺61H內(nèi)。那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,RQ R1、DPTR SP寄存器間接尋址范圍總結(jié):A、內(nèi)部RAM氐128單元。對內(nèi)部RAM氐128單元的間接尋址,應(yīng)使用R0或R1作間址寄存器,其通用形式為 Ri(i=0或1)。B、外部RAM 64KB對外部RAM64K曲間接尋址,應(yīng)使用 DPTR間址尋址寄存器,其形式為 DPTR例如MOVX A DPTR其功能是把DPT做旨定的外部RAM勺單元的內(nèi)容 送入累加器A中。外部RAM勺低256單元是一個特殊的尋址區(qū),除可以用DPT

9、R乍間址寄 存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX A R0這條指令的意思是,把 R0指定的外部RAMI元 的內(nèi)容送入累加器A。G堆棧操作指令(PUS怦日POP也應(yīng)算作是寄存器間接尋址,即以 堆棧指針SP作間址寄存器的間接尋址方式。寄存器間接尋址方式不可以訪問特殊功能寄存器! !寄存器間接尋址也須以寄存器符號的形式表示,為了區(qū)別寄存器尋址 和寄存器間接尋址的區(qū)別,在寄存器間接尋址方式中,寄存器的名稱 前面加前綴標(biāo)志“ 。5、基址寄存器加變址寄存器的變址尋址MOV A A + DPTR操作數(shù)地址=變地址+基地址基地址寄存器DPTR或PC; 變址寄存器A該尋址方式常用于訪問程

10、序存儲器,查表。這種尋址方式以程序計數(shù)器 PC或DPTF基址寄存器,累加器A為變 址寄存器,變址尋址時,把兩者的內(nèi)容相加,所得到的結(jié)果作為操作 數(shù)的地址。這種方式常用于訪問程序存儲器 ROM的數(shù)據(jù)表格,即查 表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫入,也就是說變址尋址 這種方式只能對程序存儲器進(jìn)行尋址,或者說它是專門針對程序存儲 器的尋址方式。例:MOVC A A+DPTR這條指令的功能是把DPTF A的內(nèi)容相加,再把所得到的程序存儲器 地址單元的內(nèi)容送A。假若指令執(zhí)行前A=54H DPTR=3F21H則這條指 令變址尋址形成的操作數(shù)地址就是 54H+3F21H=3F75H如果3F75

11、H單元中的內(nèi)容是7FH則執(zhí)行這條指令后,累加器 A中的內(nèi)容就是7FK變址尋址的指令只有三條,分別如下:JMP A+DPTRMOVC A, A+DPTRMOVC A, A+PC第一條指令JMP A+DPTR這是一條無條件轉(zhuǎn)移指令,這條指令的意思就是DPT。口上累加器A的內(nèi)容做為一個16位的地址,執(zhí)行JMP條指令是,程序就轉(zhuǎn)移到A +DPTRt定的地址去執(zhí)行。第二、三條指令 MOVC A A+DPTR MOVC A A+PCf令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現(xiàn)詳細(xì)說明如下:我們知道,PC是程序指針,是十六位的。DPT睡一個16位的數(shù)據(jù)指 針寄存器,按理,它們

12、的尋址范圍都應(yīng)是 64K。我們在學(xué)習(xí)特殊功能 寄存器時已知道,程序計數(shù)器 PC是始終跟蹤著程序的執(zhí)行的。也就 是說,PC的值是隨程序的執(zhí)行情況白動改變的,我們不可以隨便的給PC賦值。而DPT睡一個數(shù)據(jù)指針,我們就可以給空的數(shù)據(jù)指針 DPTR 進(jìn)行賦值。我們再看指令MOVC A, A+P甌條指令的意思是將PC 的值與累加器A的值相加作為一個地址,而 PC是固定的,累加器A 是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里, 大家應(yīng)可明白,MOVC A, A+PCt條指令的尋址范圍其實(shí)就是只能 在當(dāng)前指令下256個地址單元。所在,這在我們實(shí)際應(yīng)用中,可能就 會有一個問題,如果我們需要查

13、詢的數(shù)據(jù)表在256個地址單元之內(nèi),則可以用MOVC A, A+P成條指令進(jìn)行查表操作,如果超過了 256 個單元,則不能用這條指令進(jìn)行查表操作。剛才我們已說到,DPT睡一個數(shù)據(jù)指針,這個數(shù)據(jù)指針我們可以給它賦值操作的。通過賦值操 作。我們可以使MOVC A, A+DPTR條指令的尋址范圍達(dá)到 64K。 這就是這兩條指令在實(shí)際應(yīng)用當(dāng)中要注意的問題 。變址尋址方式是MCS-5伸片機(jī)所獨(dú)有的一種尋址方式。6、位尋址 80C51單片機(jī)有位處理功能,可以對數(shù)據(jù)位進(jìn)行操作,因此就有相應(yīng) 的位尋址方式。所謂位尋址,就是對內(nèi)部 RAhM可位尋址的特殊功能 寄存器SFR內(nèi)的某個位,直接加以置位為1或復(fù)位為0。位

14、尋址的范圍,也就是哪些部份可以進(jìn)行位尋址:A、我們在學(xué)習(xí)51單片機(jī)的存儲器結(jié)構(gòu)時,我們已知道在單片機(jī)的內(nèi) 部數(shù)據(jù)存儲器RAM勺低128單元中有一個區(qū)域叫位尋址區(qū)。 它的單元 地址是20H-2FK共有16個單元,一個單元是8位,所以位尋址區(qū)共 有128位。這128位都單獨(dú)有一個位地址,其位地址的名字就是 00H -7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學(xué) 習(xí)中00H 01H。7FH等等,所表示的都是一個字節(jié)(或者叫單 元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們在指令中,或 者在程序中如何來區(qū)分它是一個單元地址還是一個位地址呢?這個問 題,也就是我們現(xiàn)在正在研究的

15、位尋址的一個重要問題。其實(shí),區(qū)分 這些數(shù)據(jù)是位地址還是單元地址,我們都有相應(yīng)的指令形式的。這個 問題我們在后面的指令系統(tǒng)學(xué)習(xí)中再加以論述。B、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都 可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請9思考題與習(xí)題部分參考答案大家回頭去看看我們前面關(guān)于專用寄存器的相關(guān)文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進(jìn)行位尋址,當(dāng)然并不是全部,大家在應(yīng)用當(dāng)中應(yīng)引起注意。(后面有詳細(xì)介紹)7、相對尋址把指令中給定的地址偏移量與本指令所在單兀地址(PC內(nèi)容)相加得到真正有效的操作數(shù)所存放的地址。舉“李同學(xué)20歲,張同學(xué)比李同學(xué)

16、大3歲”的例子。JC 60H ;設(shè)(PC = 2000H ,則當(dāng)C = 1時,轉(zhuǎn)移的目的地址=(PQ + 2 + 60H專用寄存器的位尋址表示方法:卜面我們以程序狀態(tài)字PSV#進(jìn)行說明D7D6D5D4D3D2D1D0CYACF0RS1RS0OVP1、 直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5HMOV C, D5H2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示MOV C, F03、 單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5MOV C,D0H.54、專用寄存器符號加位表示:例如PSW.5MOV C,PSW.5這四種方法實(shí)

17、現(xiàn)的功能都是相同的,只是表述的方式不同而已。例題:1.說明下列指令中源操作數(shù)采用的尋址方式。MOV R5 R7答案:寄存器尋址方式MOV A 55H直接尋址方式MOV A # 55H立即尋址方式JMP A+DPTR變址尋址方式MOV 30H C位尋址方式MOV A R0間接尋址方式MOVX A,R0間接尋址方式改錯題請判斷下列的MCS-51單片機(jī)指令的書寫格式是否有錯,若有,請 說明錯誤原因。MOV R0 R3答案:間址寄存器不能使用R2R7。MOVC A R0+DPTR變址尋址方式中的間址寄存器不可使用 R0,只可使用AADD R0 R1運(yùn)算指令中目的操作數(shù)必須為累加器 A,不可為RCLMU

18、L A R0乘法指令中的乘數(shù)應(yīng)在B寄存器中,即乘法指令只可使用 AB寄存器組合。MCS51單片機(jī)指令系統(tǒng)與匯編語言程序設(shè)計1. 8051單片機(jī)的指令系統(tǒng)有何特點(diǎn)?解:8051的指令系統(tǒng)由111條指令組成。如果按字節(jié)數(shù)分類,有 49條單字節(jié)指令46條雙字 節(jié)指令和16條三字節(jié)指令,以單字節(jié)指令為主;如果按照指令執(zhí)行時間分類,有 64條單周 期指令、45條雙周期指令和2條四周期指令,以單周期指令為主。8051的指令系統(tǒng)具有以下特點(diǎn):(1) 存儲效率高、執(zhí)行速度快,可以進(jìn)行直接地址到直接地址的數(shù)據(jù)傳送, 能把一個并行 I/O 口中的內(nèi)容傳送到內(nèi)部 RAM單元中而不必經(jīng)過累加器 A或工作寄存器 Rn。

19、這樣可以大 大提高傳送速度和緩解累加器 A的瓶頸效應(yīng)。(2) 用變址尋址方式訪問程序存儲器中的表格,將程序存儲器單元中的固定常數(shù)或表格字 節(jié)內(nèi)容傳送到累加器 A中。這為編成翻譯算法提供了方便。(3) 在算術(shù)運(yùn)算指令中設(shè)有乘法和除法指令(4) 指令系統(tǒng)中一些對I/O 口進(jìn)行操作的指令具有“讀修改寫”的功能。這一功能指:在執(zhí)行讀鎖存器的指令時,CPU首先完成將鎖存器的值通過緩沖器BUF2度入內(nèi)部,進(jìn)行修改、改變,然后重新寫到鎖存器中去。這種類型指令包含所有的邏輯操作和位操作指令。(5) 8051單片機(jī)內(nèi)部有一個布爾處理器,對為地址空間具有豐富的位操作指令。布爾操作類指令有17條,包括布爾傳送指令、

20、布爾狀態(tài)控制指令、布爾邏輯操作指令、布爾條件轉(zhuǎn) 移指令。2. 8051單片機(jī)指令系統(tǒng)按功能可分為幾類?具有幾種尋址方式?它們的尋址范圍如何?解:MCS-51單片機(jī)指令系統(tǒng)按功能可分為5類:(1) 數(shù)據(jù)傳送指令(2) 算術(shù)運(yùn)算指令(3) 邏輯運(yùn)算和移位指令(4) 控制轉(zhuǎn)移指令(5) 位操作指令MCS-51單片機(jī)的指令系統(tǒng)提供了七種尋址方式,其對應(yīng)的尋址范圍如下表:尋址方式使用的變量尋址范圍立即尋址程序存儲命直接尋址內(nèi)部RAM低128個字七; 特殊功能寄存器SFR寄存器尋址R0R7; A、B、DPTR、C寄存器間接尋址R0、R1、SP內(nèi)部RAM、堆棧指針SPR0、R1、DPTR外部RAM變址尋址A

21、+PC、A+DPTR程序存儲命相對尋址PC+偏移量程序存儲命位尋址內(nèi)部RAM低128B位尋址區(qū) 可位尋址的特殊功能寄存器位3. 訪問特殊功能寄存器和外部數(shù)據(jù)存儲器應(yīng)采用哪種尋址方式?解:訪問特殊功能寄存器,應(yīng)采用直接尋址、位尋址方式。訪問外部數(shù)據(jù)存儲器,應(yīng)采用寄存器間接尋址方式。在0255B范圍內(nèi),可用寄存器 RQ R1間接尋址:MOVX A , R0 或 MOVX A, R1MOVX R0, A 或 MOVX R1 , A在064KB范圍內(nèi),可用16位寄存器DPTR'可接尋址:MOVX A , DPTRMOVX DPTR , A4. “DA A”指令的作用是什么?怎樣使用?解:這條指

22、令是在進(jìn)行 BCD碼加法運(yùn)算時,跟在“ ADD ”和“ ADDC ”指令之后,用來對 BCD碼的加法運(yùn)算結(jié)果自動進(jìn)行修正的,使其仍為BCD碼表達(dá)形式。在計算機(jī)中,遇到十進(jìn)制調(diào)整指令時, 中間結(jié)果的修正是由 ALU硬件中的十進(jìn)制修正電路自 動進(jìn)行的。用戶不必考慮何時該加 “6 ”,使用時只需在上述加法指令后面緊跟一條“DA A指令即可。5.片內(nèi)RAM 20H2FH 單元中的128個位地址與直接地址 00H7FH形式完全相同,如何在 指令中區(qū)分出位尋址操作和直接尋址操作?解:雖然內(nèi)部RAM位尋址區(qū)的位地址范圍 00H7FH與低128個單元的單元地址范圍 00H7FH形式完全相同,但是在應(yīng)用中可以通

23、過指令的類型區(qū)分單元地址和位地址。位尋址的操作只適用于下列位指令,而直接尋址操作對這些指令是無效的。MOV C , bitMOV bit , CCLR bitSETB bitCPL bitANL C , bitANLC , /bitJB bit, relJNB bit, rel 6. 8051單片機(jī)指令系統(tǒng)中有長跳轉(zhuǎn) LJMP,長調(diào)用LCALL指令,為何還沒有設(shè)置了絕對跳 轉(zhuǎn)AJMP,絕對調(diào)用ACALL指令?在實(shí)際使用是應(yīng)怎樣考慮?解:在實(shí)際應(yīng)用中,可從尋址范圍和指令長度兩個方面來選擇長跳轉(zhuǎn)指令LJMP和短跳轉(zhuǎn)指令A(yù)JMP、長調(diào)用指令 LCALL和短調(diào)用指令 ACALL 。長跳轉(zhuǎn)LJMP在64

24、KB范圍內(nèi)轉(zhuǎn)移,而短跳轉(zhuǎn)AJMP只能在2KB空間轉(zhuǎn)移。長調(diào)用LCALL 調(diào)用位于64KB程序空間的子程序,而短調(diào)用ACALL調(diào)用位于2KB程序空間范圍的子程序。 AJMP、ACALL指令代碼長度為2個字節(jié);LJMP、LCALL指令代碼長度為3個字節(jié)。7. SJMP, AJMP和LJMP指令在功能上有何不同?解:指令的轉(zhuǎn)移范圍不同。SJMP是256B范圍內(nèi)的相對轉(zhuǎn)移指令,AJMP是2KB范圍內(nèi)的無條件短跳轉(zhuǎn)指令,LJMP 是64KB范圍內(nèi)的無條件長跳轉(zhuǎn)指令。8. MOVC A , DPTR 與 MOVX A , DPTR 指令有何不同?解:指令的轉(zhuǎn)移范圍不同。SJMP是256B范圍內(nèi)的相對轉(zhuǎn)移指

25、令,AJMP是2KB范圍內(nèi)的無條件短跳轉(zhuǎn)指令,LJMP 是64KB范圍內(nèi)的無條件長跳轉(zhuǎn)指令。9. 在 “MOVC A , A+DPTR” 和 “ MOVC A , A+PC ”中,分別使用了 DPTR 和 PC 作基址,請問這兩個基址代表什么地址?使用中有何不同?解:使用A+DPTR基址變址尋址時,DPTR為常數(shù)且是表格的首地址,A為從表格首址到 被訪問字節(jié)地址的偏移量。使用A+PC基址變址尋址時,PC仍是下條指令首地址, 而A則是從下條指令首地址到 常數(shù)表格中的被訪問字節(jié)的偏移量。10.設(shè)片內(nèi)RAM中的(40H ) =50H ,寫出執(zhí)行下列程序段后寄存器 A和R0,以及片內(nèi)RAM 中50H和

26、51H單元的內(nèi)容為何值?MOV A, 40HMOV R0, AMOV A, #00MOV R0, AMOV A, #30HMOV 51H, AMOV 52H, #70H解:結(jié)果為:(A) = 30H(R0) =50H(50H) = 00H(51H) = 30H11.設(shè)堆棧指針(SP) =60H ,片內(nèi)RAM 中的(30H) =24H , (31H)= 10H。執(zhí)行卜列程序段后,61H , 62H, 30H,31H,DPTR及SP中的內(nèi)容將有何變化?解:結(jié)果為:(61H)=24H(62H)=10H(30H)=00H(31H)=0FFHDPTR=2410HSP=60H12.在8051的片內(nèi) RAM

27、 中,已知(20H) =30H , (30H) =40H , (40H)=50H , (50H) =55H。分析下面各條指令,說明源操作數(shù)的尋址方式,分析按順序執(zhí)行各條指令后的結(jié)果。MOV A, 40HMOV R0, AMOV P1, #0F0HMOV R0, 20HMOV 50H, R0MOV A , R0MOV P2, P1解:指令源操作數(shù)的尋址方式執(zhí)行指令后的結(jié)果MOV A,40H直接尋址(A)=50HMOV R0,A寄存器尋址(R0)=50HMOV P1,#80H立即尋址(P1)=80HMOV R0,20H寄存器間接尋址(50H)=30HMOV DPTR,#2000H立即尋址(DPTR

28、)=2000HMOV 40H,30H直接尋址(40H)=40HMOV R0,30H直接尋址(R0)=40HMOV D0H,R0直接尋址(D0H)=40H17思考題與習(xí)題部分參考答案立即尋址寄存器間接尋址寄存器尋址(10H)=10H(A)=50H(P2)=80HMOV 10H,#10HMOV A,R0MOV P2,P113.完成以下的數(shù)據(jù)傳送過程。(1) R1的內(nèi)容傳送到 R0。(2) 片外 RAM 20H 單元的內(nèi)容送 R0。(3) 片外 RAM 20H 單元的內(nèi)容送片內(nèi) RAM 20H(4) 片外RAM 1000H單元的內(nèi)容送片內(nèi) RAM 20H(5) 片外 RAM 20H 單元的內(nèi)容送 R

29、0。(6) 片外 RAM 2000H 單元的內(nèi)容送片內(nèi) RAM 20H(7) 片外 RAM 20H 單元的內(nèi)容送片外 RAM 20H解:(1) R1的內(nèi)容傳送到R0 ;MOVA, R1MOVR0,A(2)片外 RAM 20H 單元內(nèi)容送 R0 ;MOVDPTR,#0020HMOVXA,DPTRMOVR0,A(3)片外 RAM 20H 單元的內(nèi)容送片內(nèi) RAM 20H 單元;MOVDPTR,#0020HMOVXA,DPTRMOV20H,A(4)片外 RAM 1000H 單元的內(nèi)容送片內(nèi)RAM 20H 單元;MOV DPTR,#1000HMOVXA,DPTRMOV20H,A(5)ROM 2000H

30、 單元的內(nèi)容送 R0單元;MOVA,#00HMOV DPTR, #2000HMOVCA, A+DPTRMOVR0H,A(6)ROM 2000H 單元的內(nèi)容送片內(nèi) RAM 20H 單元;MOVA,#00HMOV DPTR, #2000HMOVCA, A+DPTRMOV20H, A(7)ROM 2000H 單元的內(nèi)容送片外 RAM 20H 單元。MOVDPTR,#2000HMOVCA, A+DPTRMOVDPTR,#0020HMOVXDPTR,A14. 設(shè)有兩個 4位BCD碼,分別存放在片內(nèi) RAM 的23H , 22H單元和33H , 32H單元中, 求它們的和,并送入 43H , 42H單元中

31、去。(以上均為低位字節(jié),高位在高字節(jié)) 。解:ORG 0000HLJMP STARTORG 0030HSTART: MOV A , 22HADD A , 32H DA AMOV 42H , AMOV A , 23HADDC A , 33HDA AMOV 43H , A SJMP $ END15. 編程將片內(nèi) RAM 的40H60H單元中內(nèi)容送到片外 RAM 以3000H開始的單元中。解:ORG 0000HLJMP MAINORG 0030HMAIN : MOV R7 , #20HMOV R1 , #40HMOV DPTR , #3000HLOOP : MOV A , R1MOVX DPTR ,

32、 AINC R1INC DPTRDJNZ R7 , LOOPSJMP $ END16. 編程計算片內(nèi) RAM區(qū)30H37H的8個單元中數(shù)的算術(shù)平均值,結(jié)果存在3AH單元中。解:ORG 0000HLJMP MAINORG 0030HMAIN : MOV R0 , #30HMOV R1 , #00HMOV R2 , #00HMOV R3 , #07HLP2 :MOV A , R0ADD A , R2 MOV R2 , A JNC LP1 INC R1 LP1 :INC R0DJNZ R3 , LP2MOV R3 , #03HLP3 :CLR CMOV A , R1 RRC AMOV R1 , A MOV A , R2 RRC A MOV R2 , A DJNZ R3 , LP3 MOV 3AH , R2 SJMP $ END17.編寫計算下式的程序, 設(shè)乘積的結(jié)果均小于和2002H單元中,結(jié)果存于 2000H單元中。(A+B* (A+B ) +10若Y= (A+B ) * (A+B )(A+B ) * (A+B ) -10解:255, A , B值分別存放在片外 RAM 的2001H(A+B ) * (A+B ) 10若(A+B ) * (A+B

溫馨提示

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

最新文檔

評論

0/150

提交評論