3.1 MCS一51系列單片機(jī)的尋址方式有哪幾種?請列表分析各種尋址方式的訪問對象與尋址范圍。
3.2 要訪問片內(nèi)RAM,可有哪幾種尋址方式?
3.3 要訪問片外RAM,有哪幾種尋址方式?
3.4 要訪問ROM,又有哪幾種尋址方式?
3.5 試按尋址方式對MCS一51系列單片機(jī)的各指令重新進(jìn)行歸類(一般根據(jù)源操作數(shù)尋址方式歸類,程序轉(zhuǎn)移類指令例外)。
3.6 試分別針對51系列,說明MOV A,direct指令與MOV A,@Ri指令的訪問范圍。
3.7 傳送類指令中哪幾個(gè)小類是訪問RAM的?哪幾個(gè)小類是訪問ROM的?為什么訪問 ROM的指令那么少?CPU訪問ROM多不多?什么時(shí)候需要訪問ROM?
3.8 試?yán)L圖示明MCS一51系列單片機(jī)數(shù)據(jù)傳送類指令可滿足的各種傳送關(guān)系。
3.9 請選用指令,分別達(dá)到下列操作:
(1) 將累加器內(nèi)容送工作寄存器R。。
(2) 將累加器內(nèi)容送片內(nèi)RAM的7BH單元。
(3) 將累加器內(nèi)容送片外RAM的7BH單元。
(4) 將累加器內(nèi)容送片外RAM的007BH單元。
(5) 將ROM007BH單元內(nèi)容送累加器。
3.10 區(qū)分下列指令的不同功能:
(1)MOV A,#24H 與MOV A,24H
(2)MOV A,R0與MOV A,@R0
(3)MOV A,@R0與MOVX A,@R0
3.11 設(shè)片內(nèi)RAM 30H單元的內(nèi)容為40H;
片內(nèi)RAM 40H單元的內(nèi)容為10H;
片內(nèi)RAM 10H單元的內(nèi)容為00H;
(P1)=0CAH。
請寫出執(zhí)行下列指令后的結(jié)果(指各有關(guān)寄存器、RAM單元與端口的內(nèi)容)。
MOV R0,#30H
MOV A,@R0
MOV R1,A
MOV B,@Rl
MOV @R0,P1
MOV P3,P1
MOV 10H,#20H
MOV 30H,10H
3.12 已知:(A)=55H,(R0)=8FH,(n)=F0H,(SP)=B0H,試分別寫出執(zhí)行各條指令的結(jié)果:
(1) MOV R6,A
(2) MOV @R0,A
(3) MOV A,#90H
(4) MOV A,90H
(5) MOV 80U,#81H
(6) MOVX @R0,A
(7) PUSH A
(8) SWAP A
(9) XCH A,R0
3.13 巳知:(A)=02H,(R1)=89H,(DPTR)=2000H,片內(nèi)RAM(89H)=70H,片外RAM(2070H)=11H,ROM(2070)=64H,試分別寫出執(zhí)行各條指令的結(jié)果。
(1) MOV A,@R1
(2) MOVX @DPTR,A
(3) MOVC A,@A+DPTR
(4) XCHD A,@R1
3.14 已知, (A)=78H,(R1)=78H,(B)=04H,C=1,片內(nèi)RAM(78H)=DDH,片內(nèi)RAM(80H)=6CH,試分別寫出執(zhí)行各條指令的結(jié)果(如涉及標(biāo)志位,也要寫出)。
(1) ADD A,@R1
(2) ADDC A,78H
(3) SUBB A,#77H
(4) INC R1
(5) DEC 78H
(6) MUL AB
(7) DIV AB
(8) ANL 78H,#78H
(9) ORL A, #0FH
(10) XRL 80H,A
3.15 已知:C:o,累加器和R1內(nèi)容分別為無符號數(shù)甲和乙,問;執(zhí)行指令A(yù)DDC A, R1后,進(jìn)位位、符號位和溢出位將各為何值?累加器的內(nèi)容為何,該如何讀取?
(1) 甲為02H,乙為FFH
(2) 甲為02H,乙為FOH
3.16 已知:C=0,累加器和RI內(nèi)容分別為補(bǔ)碼表示的帶符號數(shù)甲和乙,問: 執(zhí)行指令 ADDC A,R1后,進(jìn)位位、符號位和溢出位將各為何值?累加器的內(nèi)容為何,該如何讀取?
(1)甲為78H,乙為05H
(2)甲為88H,乙為FBM
(3)甲為78H,乙為69H
(4)甲為88H,乙為97H
(5)甲為7FH,乙為FEH
(6)甲為7FH,乙為80H
3.17 已知:C=0,累加器和R1內(nèi)容分別為無符號數(shù)甲和乙,問:執(zhí)行指令SUBB A,R1后,進(jìn)位位、符號位和溢出位將各為何值?累加器的內(nèi)容為何,該如何讀取?
(1)甲為02H,乙為FFH
(2)甲為FFH,乙為02H
3.18 3.1.20 已知:C=0,累加器和R1內(nèi)容分別為補(bǔ)碼表示的帶符號數(shù)甲和乙,
問:執(zhí)行指令 SUBB A,R1后,進(jìn)位位、符號位和溢出位將各為何值?累加器的內(nèi)容為何,該如何讀取?
(1)甲為02H,乙為01H
(2)甲為01H,乙為02H
(3)甲為FFH,乙為FEH
(4)甲為FEH,乙為FFH
(5)甲為04H,乙為FFH
(6)甲為FFH,乙為04H
(7)甲為7FH,乙為C1H
(8)甲為C1H,乙為7FH
3.19 請對下列各組數(shù)分別計(jì)算“與”、“或”、“異或”的結(jié)果:
(1)10011010和00001111
(2)11010011和01011010
(3)11001100和00110011
(4)10101010和11111111
3.20 為達(dá)到下列要求,請說明應(yīng)采用何種邏輯操作、采用什么操作數(shù)。要求不得改變各未涉及位的內(nèi)容.
(1)使累加器的最低位置“l’
(2)清除累加器的高4位
(3)使A.2和A.3置“1”
(4)清除A.3、A.4、A.5、A.6
3.21 請總結(jié)運(yùn)用“與’、“或’、“異或”指令對字節(jié)內(nèi)容進(jìn)行修改的各種辦法。
3.22 逐條寫出依次執(zhí)行每一條指令后的結(jié)果和PSW的內(nèi)容:
(1)CLR A
(2)MOV A,#9BH
(3)MOV B,#0AFH
(4)ADD A,B
3.23 請?jiān)敿?xì)說明RET和RETI這兩條指令的區(qū)別。
3.24 已知:(A)=0,(R1)=40H,片內(nèi)RAM(30H)=01H,F(xiàn)IRST=2000H,SECOND =2050H,試分別寫出執(zhí)行各條指令的結(jié)果:
(1) FIRST:AJMP SECOND
(2) FIRST:LJMP SECOND
(3) FIRST:SJMP SECOND
(4) FIRST:JZ SECOND
(5) FIRST,CJNE A,30H,SECOND
(6) FIRST:LCALL SECOND
(7) SECOND:DJNZ R1,F(xiàn)IRST
3.25 已知:P1.7=1,A.0=O,C=1,F(xiàn)IRST=1000H,SECOND=1020H,試分別寫出執(zhí)行各條指令的結(jié)果:
(1) MOV 26H,C
(2) CPL A.0
(3) CLR P1.7
(4) ORL C,/P1.7
(5) FIRST:JC SECOND
(6) FIRST:JNB A.O,SECOND
(7) SECOND:JBC P1.7,F(xiàn)IRST
3.26 要選用工作寄存器3組,請采用三種不同的指令實(shí)現(xiàn)之。
3.27 列舉三種能使累加器A內(nèi)容清零的指令,并比較其優(yōu)、缺點(diǎn)。
3.28 16位地址共涉及兩個(gè)字節(jié),請統(tǒng)計(jì)在哪些場合按照“先低后高”規(guī)則處理,哪些場合卻按照“先高后低”規(guī)則。
3.29 分組討論,
(1)算術(shù)操作類指令對標(biāo)志位的影響,
(2)邏輯操作類指令對字節(jié)內(nèi)容的修改。
(3)程序轉(zhuǎn)移類指令長轉(zhuǎn)移、絕對轉(zhuǎn)移、短轉(zhuǎn)移、絕對轉(zhuǎn)移與相對轉(zhuǎn)移、五條件轉(zhuǎn)移與條件轉(zhuǎn)移的區(qū)分,絕對轉(zhuǎn)移指令機(jī)器碼與轉(zhuǎn)移范圍的確定,相對轉(zhuǎn)移指令相對偏移量的計(jì)算,散轉(zhuǎn)指令的查表轉(zhuǎn)移,調(diào)用與返主指令的堆棧操作,比較轉(zhuǎn)移指令的格式與功用.
(4)位操作類指令中直接尋址位的表示方式。
3.30 請統(tǒng)計(jì)MCS一51系列單片機(jī)有哪些指令可用于修改并行I/O口端口寄存器的內(nèi)容?
