第3章答案指令系統(tǒng)1-40_第1頁
第3章答案指令系統(tǒng)1-40_第2頁
第3章答案指令系統(tǒng)1-40_第3頁
第3章答案指令系統(tǒng)1-40_第4頁
第3章答案指令系統(tǒng)1-40_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第3章 指令系統(tǒng)1,簡述下列基本概念:指令,指令系統(tǒng),機(jī)器語言,匯編語言,高級語言。1、 指令:CPU根據(jù)人的意圖來執(zhí)行某種操作的命令指令系統(tǒng):一臺計算機(jī)所能執(zhí)行的全部指令集合機(jī)器語言:用二進(jìn)制編碼表示,計算機(jī)能直接識別和執(zhí)行的語言匯編語言:用助記符、符號和數(shù)字來表示指令的程序語言高級語言:獨立于機(jī)器的,在編程時不需要對機(jī)器結(jié)構(gòu)及其指令系統(tǒng)有深入了解的通用性語言2,什么是計算機(jī)的指令和指令系統(tǒng)?2、 見第1題。3,簡述89C51匯編指令格式。3、 操作碼 目的操作數(shù) ,源操作數(shù)4,簡述89C51尋址方式和所能涉及的尋址空間。4、尋址方式尋址空間立即數(shù)尋址程序存儲器ROM直接尋址片內(nèi)RAM低12

2、8B、特殊功能寄存器寄存器尋址工作寄存器R0-R7、A、B、C、DPTR寄存器間接尋址片內(nèi)RAM低128B、片外RAM變址尋址程序存儲器(A+PC,A+DPTR)相對尋址程序存儲器256B范圍(PC+偏移量)位尋址片內(nèi)RAM的20H-2FH字節(jié)地址、部分SFR5,要訪問特殊功能寄存器和片外數(shù)據(jù)寄存器,應(yīng)采用哪些尋址方式?5、 SFR:直接尋址,位尋址,寄存器尋址;片外RAM:寄存器間接尋址6,在89C51片內(nèi)RAM中,已知 (30H)=38H, (38H)=40H, (40H)=48H, (48H)=90H, 請分析下面各是什么指令,說明源操作數(shù)的尋址方式以及按順序執(zhí)行每條指令后的結(jié)果。6、

3、MOV A,40H ;直接尋址 (40H)A MOV R0,A ;寄存器尋址 (A)R0 MOV P1,#0F0H ;立即數(shù)尋址 0F0P1 MOV R0,30H ;直接尋址 (30H) (R0) MOV DPTR,#3848H ;立即數(shù)尋址 3848HDPTR MOV 40H,38H ;直接尋址 (38H) 40H MOV R0,30H ;直接尋址 (30H) R0 MOV P0,R0 ;寄存器尋址 ( R0 )P0 MOV 18H,#30H ;立即數(shù)尋址 30H18H MOV A,R0 ;寄存器間接尋址 (R0) A MOV P2,P1 ;直接尋址 (P1)P2最后結(jié)果:(R0)=38H,

4、(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H注意:左邊是內(nèi)容,右邊是單元7,對89C51片內(nèi)RAM的高128字節(jié)的地址空間尋址要注意什么7、 用直接尋址,位尋址,寄存器尋址8,指出下列指令的本質(zhì)區(qū)別。8, MOV A,DATA;直接尋址2字節(jié)1周期MOV A,#DATA;立即數(shù)尋址2字節(jié)1周期MOV DATA1,DATA2;直接尋址3字節(jié)2周期MOV 74H,#78H;立即數(shù)尋址3字節(jié)2周期如果想查某一指令的機(jī)器碼,字節(jié)數(shù)或周期數(shù)可查閱書本后面的附錄A

5、9,設(shè)R0內(nèi)容為32H, A的內(nèi)容為48H, 片內(nèi)RAM的32H單元內(nèi)容為80H, 40H單元內(nèi)容為08H, 請指出在執(zhí)行下列程序段后上述各單元內(nèi)容的變化。9、MOVA,R0;(R0)=80HAMOVR0,40H;(40H)=08H(R0)MOV40H,A;(A)=8040HMOVR0,#35H;35HR0最后結(jié)果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H10,如何訪問SFR,可使用哪些尋址方式?10、用直接尋址,位尋址,寄存器尋址11,如何訪問片外RAM,可使用哪些尋址方式?11、只能采用寄存器間接尋址(用MOVX指令)12,如何訪問片內(nèi)RAM,可使用哪些尋址

6、方式?12、低128字節(jié):直接尋址,位尋址,寄存器間接尋址,寄存器尋址(R0R7)高128字節(jié):直接尋址,位尋址,寄存器尋址13,如何訪問片內(nèi)外程序存儲器,可使用哪些尋址方式?13、采用變址尋址(用MOVC指令)14,說明十進(jìn)制調(diào)整的原因和方法。14、壓縮BCD碼在進(jìn)行加法運算時應(yīng)逢十進(jìn)一,而計算機(jī)只將其當(dāng)作十六進(jìn)制數(shù)處理,此時得到的結(jié)果不正確。用DA A指令調(diào)整(加06H,60H,66H)15,說明89C51的布爾處理機(jī)功能。15、用來進(jìn)行位操作16,已知(A)=83H, (R0)=17H, (17H)=34H, 請寫出執(zhí)行完下列程序段后A的內(nèi)容。16、ANL A,#17H ;83H17H=

7、03HAORL 17H,A ;34H03H=37H17HXRL A,R0 ;03H37H=34HCPL A ;34H求反等于CBH所以(A)=CBH17,使用位操作指令實現(xiàn)下列邏輯功能,要求不得改變未涉及位的內(nèi)容。(1)使ACC.0置1; (2)清除累加器高4位; (3)清除ACC.3,ACC.4,ACC.5,ACC.6 。17、(1)SETB ACC.0或SETB E0H ;E0H是累加器的地址(2)CLR ACC.7 CLR ACC.6 CLR ACC.5 CLR ACC.4(3)CLR ACC.6 CLR ACC.5 CLR ACC.4 CLR ACC.3 18,編程實現(xiàn)把內(nèi)部RAM R

8、0R7 的內(nèi)容傳遞到 20H27H單元。18、MOV 27H,R7MOV 26H,R6MOV 25H,R5MOV 24H,R4MOV 23H,R3MOV 22H,R2MOV 21H,R1MOV 20H,R019,試編寫程序,將內(nèi)部RAM 20H、21H和22H3個連續(xù)單元的內(nèi)容依次存入 2FH、2EH 和2DH 中。19、MOV 2FH,20H MOV 2EH,21H MOV 2DH,22H20,編寫程序,進(jìn)行兩個16位數(shù)減法,6F5DH 13B4H, 結(jié)果存入內(nèi)部RAM的30H和31H單元,30H存儲低8位。20、CLR CMOV A,#5DH ;被減數(shù)的低8位AMOV R2,#0B4H ;

9、減數(shù)低8位R2SUBB A,R2 ;被減數(shù)減去減數(shù),差A(yù)MOV 30H,A ;低8位結(jié)果30HMOV A,#6FH ;被減數(shù)的高8位AMOV R2,#13H ;減數(shù)高8位R2SUBB A,R2 ;被減數(shù)減去減數(shù),差A(yù)MOV 31H,A ;高8位結(jié)果30H注意:如果在你的程序中用到了進(jìn)位位,在程序開始的時候要記得清0進(jìn)位位21,編寫程序,若累加器A的內(nèi)容分別滿足下列條件,則程序轉(zhuǎn)至LABEL存儲單元。設(shè)A中存儲的是無符號數(shù)。(1)A10; (2)A>10; (3)A10。21、(1)A10CJNE A,#0AH,L1 ;(A)與10比較,不等轉(zhuǎn)L1LJMP LABEL ;相等轉(zhuǎn)LABELL

10、1:JNC LABEL ;(A)大于10,轉(zhuǎn)LABEL或者:CLR CSUBB A,#0AHJNC LABEL(2)A10CJNE A,#0AH,L1 ;(A)與10比較,不等轉(zhuǎn)L1RET ;相等結(jié)束L1:JNC LABEL ;(A)大于10,轉(zhuǎn)LABEL RET ;(A)小于10,結(jié)束或者:CLR CSUBB A,#0AHJNC L1RETL1:JNZ LABELRET(3)A10CJNE A,#0AH,L1 ;(A)與10比較,不等轉(zhuǎn)L1L2:LJMP LABEL ;相等轉(zhuǎn)LABELL1:JC L2 ;(A)小于10,轉(zhuǎn)L2RET或者:CLR CSUBB A,#0AHJC LABELJZ

11、LABELRET22,已知 (SP)=25H, (PC)=2345H, (24H)=12H, (25H)=34H, (26H)=56H。問此時執(zhí)行 “RET”指令以后,(SP)=? (PC)=?22、(SP)=23H,(PC)=3412H參看書上80頁23,若(SP)=25H, (PC)=2345H, 標(biāo)號LABEL所在地址為3456H。問執(zhí)行長調(diào)用指令 “LCALL LABEL”后,堆棧指針和堆棧內(nèi)容發(fā)生什么變化?PC值等于什么?23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H參看書上79頁24,上題中LCALL指令能否直接換成ACALL指令,為什么?如果

12、使用ACALL指令,則可調(diào)用的地址范圍是什么?24、不能。ACALL是短轉(zhuǎn)指令,可調(diào)用的地址范圍是2KB。在看這個題的時候同時看一下AJMP指令。同時考慮調(diào)用指令A(yù)CALL和LCALL指令和RET指令的關(guān)系。25,編寫指令,查找在內(nèi)部RAM的20H50H單元中是否有0AAH這一數(shù)據(jù)。若有,則將51H單元置為01H;若未找到,則將51H單元清0。25、 MOV R2,#31H ;數(shù)據(jù)塊長度R2 MOV R0,#20H ;數(shù)據(jù)塊首地址R0LOOP:MOV A,R0 ;待查找的數(shù)據(jù)A CLR C ;清進(jìn)位位 SUBB A,#0AAH ;待查找的數(shù)據(jù)是0AAH嗎 JZ L1 ;是,轉(zhuǎn)L1 INC R0

13、 ;不是,地址增1,指向下一個待查數(shù)據(jù) DJNZ R2,LOOP ;數(shù)據(jù)塊長度減1,不等于0,繼續(xù)查找 MOV 51H,#00H ;等于0,未找到,00H51H RET L1:MOV 51H,#01H ;找到,01H51H RET26,編寫指令,查找在內(nèi)部RAM的20H50H單元中出現(xiàn)00H的次數(shù),并將查找結(jié)果存入51H單元。26、 MOV R2,#31H ;數(shù)據(jù)塊長度R2 MOV R0,#20H ;數(shù)據(jù)塊首地址R0LOOP:MOV A,R0 ;待查找的數(shù)據(jù)A JNZ L1 ;不為0,轉(zhuǎn)L1 INC 51H ;為0,00H個數(shù)增1 L1:INC R0 ;地址增1,指向下一個待查數(shù)據(jù) DJNZ

14、R2,LOOP ;數(shù)據(jù)塊長度減1,不等于0,繼續(xù)查找 RET27,外部數(shù)據(jù)RAM中有一個數(shù)據(jù)塊,存有若干字符、數(shù)字,首地址為SOURCE。要求將該數(shù)據(jù)塊傳送到內(nèi)部RAM以DIST開始的區(qū)域,直到遇到字符“$”時結(jié)束(“$”也要傳送,它的ASCII碼是24H)。27、 MOV DPTR,#SOURCE ;源首地址DPTR MOV R0,#DIST ;目的首地址R0 LOOP:MOVX A,DPTR ;傳送一個字符 MOV R0,A INC DPTR ;指向下一個字符 INC R0 CJNE A,#24H,LOOP ;傳送的是“$”字符嗎?不是,傳送下一個字符 RET28,已知R3和R4中存有一個

15、16位的二進(jìn)制數(shù),高位在R3中,低位在R4中。請編程將其求補(bǔ),并存回原處。28、 MOV A,R3 ;取該數(shù)高8位A ANL A,#80H ;取出該數(shù)符號判斷 JZ L1 ;是正數(shù),轉(zhuǎn)L1 MOV A,R4 ;是負(fù)數(shù),將該數(shù)低8位A CPL A ;低8位取反 ADD A,#01H ;加1 MOV R4,A ;低8位取反加1后R4 MOV A,R3 ;將該數(shù)高8位A CPL A ;高8位取反 ADDC A,#00H ;加上低8位加1時可能產(chǎn)生的進(jìn)位 SETB ACC.7MOV R3,A ;高8位取反加1后R3L1: RET29,已知30H和31H中存有一個16位的二進(jìn)制數(shù),高位在前,地位在后,請

16、編程將它們乘以2,再存回原單元中。29、 CLR C ;清進(jìn)位位C MOV A,31H ;取該數(shù)低8位A RLC A ;帶進(jìn)位位左移1位 MOV 31H,A ;結(jié)果存回31H MOV A,30H ;取該數(shù)高8位A RLC A ;帶進(jìn)位位左移1位 MOV 30H,A ;結(jié)果存回30H30,內(nèi)存中有兩個4字節(jié)以壓縮的BCD碼形式存放的十進(jìn)制數(shù),一個存放在30H33H單元中,一個存放在40H43H單元請編程求他們的和,結(jié)果存放在30H33H單元中。30、 MOV R2,#04H ;字節(jié)長度R2 MOV R0,#30H ;一個加數(shù)首地址R0 MOV R1,#40H ;另一個加數(shù)首地址R1 CLR C

17、;清進(jìn)位位LOOP:MOV A,R0 ;取一個加數(shù) ADDC A,R1 ;兩個加數(shù)帶進(jìn)位位相加 DA A ;十進(jìn)制調(diào)整 MOV R0,A ;存放結(jié)果 INC R0 ;指向下一個字節(jié) INC R1 ; DJNZ R2,LOOP ;數(shù)據(jù)塊長度減1,不等于0,繼續(xù)查找 RET31,編寫程序,將片外RAM從2000H開始存放的8個數(shù)傳送到片內(nèi)30H開始的單元中。31、 MOV R2,#08H ;數(shù)據(jù)塊長度R2 MOV R0,#30H ;數(shù)據(jù)塊目的地址R0 MOV DPTR,#2000H ;數(shù)據(jù)塊源地址DPTRLOOP:MOVX A, DPTR ;傳送一個數(shù)據(jù) MOV R0,A INC DPTR ;指向

18、下一個數(shù)據(jù) INC R0 ; DJNZ R2,LOOP ;數(shù)據(jù)塊長度減1,沒傳送完,繼續(xù)傳送 RET32,要將片內(nèi)RAM中0FH單元的內(nèi)容傳送到寄存器B,對0FH單元的內(nèi)容尋址可以有3種方法:(1)R尋址;(2)R間址;(3)direct尋址。 請分別編出相應(yīng)程序,比較其字節(jié)數(shù)、機(jī)器周期數(shù)和優(yōu)缺點。32、(1)MOV R0,0FH ;2字節(jié),2周期 4字節(jié)4周期(差) MOV B,R0 ;2字節(jié),2周期 (2)MOV R0,#0FH ;2字節(jié),1周期 4字節(jié)3周期(中) MOV B,R0 ;2字節(jié),2周期 (3)MOV B,#0FH ;3字節(jié),2周期 3字節(jié)2周期(好)33,閱讀下列程序,要求

19、:(1)說明該程序功能;(2)填寫所缺的機(jī)器碼;(3)修改程序,使片內(nèi)RAM的內(nèi)容成為如圖3-20所示的結(jié)果。7A-MOVR2,#0AH-MOVR0,#50HE4CLRAF6LOOP:MOVR0,A08INCR0DA-DJNZR2,LOOPDONE:33、(1)功能是將片內(nèi)RAM中50H51H單元清0。 (2)7A0A (大家可以看一下書上,對于立即數(shù)尋址的話,后面一個字節(jié)存放的是立即數(shù)) 7850 (第一個字節(jié)的后三位是寄存器,前一個條指令是010也就是指的R2,在這里是R0,所以應(yīng)該是78,后一個字節(jié)存放的是立即數(shù)) DAFC (這里涉及到偏移量的計算,可以參考書上56頁)34,設(shè)(R0)

20、=7EH, (DPTR)=10FEH, 片內(nèi)RAM中7EH單元的內(nèi)容為0FFH, 7FH單元內(nèi)容為38H, 試為下列程序每條指令注釋其執(zhí)行結(jié)果。34、 INC R0 ;(7EH)=00H INC R0 ;(R0)=7FH INC R0 ;(7FH)=39H INC DPTR ;(DPTR)=10FFH INC DPTR ;(DPTR)=1100H INC DPTR ;(DPTR)=1101H35,下列程序段經(jīng)匯編后,從1000H開始的各有關(guān)存儲單元內(nèi)容將是什么?ORG1000HTAB1:EQU1234HTAB2:EQU3000HDB“START”DWTAB1,TAB2,70H35、解:(1000H)=53H (1001H)=54H (1002H)=41H (1003H)=52H (1004H)=54H (1005H)=12H (1006H)=34H (1007H)=30H (1008H)=00H (1009H)=70H36:,閱讀下列程序,并要求:(1)說明程序的功能;(2)寫出涉及的寄存器及片內(nèi)

溫馨提示

  • 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

提交評論