版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
練習(xí)題3答案
i.簡(jiǎn)述以下根本概念:指令,指令系統(tǒng),機(jī)器語(yǔ)言,匯編語(yǔ)言。
答:指令是單片機(jī)CPU執(zhí)行某種操作的命令。
指令系統(tǒng)是一臺(tái)計(jì)算機(jī)所能執(zhí)行的指令集合。
機(jī)器語(yǔ)言即二進(jìn)制代碼語(yǔ)言,是計(jì)算機(jī)可以直接識(shí)別。
匯編語(yǔ)言是用助記符、字符串和數(shù)字等來表示指令的程序語(yǔ)。
2.簡(jiǎn)述AT89s51單片機(jī)的指令格式
答:該單片機(jī)的指令由兩局部組成,即操作碼和操作數(shù)。操作碼用來規(guī)定指令進(jìn)展什么操作,
而操作數(shù)那么是指令操作的對(duì)象,操作數(shù)可能是一個(gè)具體的數(shù)據(jù),也可能是指出到哪里取得
數(shù)據(jù)的地址或符號(hào)。指令格式一般為:
[標(biāo)號(hào):]操作碼[操作數(shù)口[,操作數(shù)2][,操作數(shù)3][;注釋]
3.簡(jiǎn)述AT89s51的尋址方式和所能涉及的尋址空間
答:共有7種尋址方式,見表3?2。
分別是:(1)存放器尋址:尋址范圍為通用存放器組,共4組32個(gè),但只能使用當(dāng)前存放器
組,因此使用前需要通過對(duì)PSW種的RSI、RSO位的狀態(tài)進(jìn)展設(shè)置;(2)直接尋址:尋址范
表3-2尋址方式及相應(yīng)的尋址存儲(chǔ)器范圍
尋址方式尋址存儲(chǔ)器范圍
立即尋址程序存儲(chǔ)器ROM
直接尋址片內(nèi)RAM低128B,特殊功能存放器
存放器尋址工作存放器R0~R7,A,C,DPTR,AB
存放器間接尋址片內(nèi)RAM低128B,片外RAM
變址尋址程序存儲(chǔ)器ROM(@A+DPTR,@A+PC)
相對(duì)尋址程序存儲(chǔ)器ROM(相對(duì)尋址指令的下一指令PC值加一128?+127)
位尋址片內(nèi)RAM的2DH?2FH字節(jié)地址中所有的位,可位尋址的特殊功能存放器
圍為內(nèi)部RAM,包括低128位用戶RAM區(qū)和高128位專用存放器;(3)存放器間接尋址:
尋址范圍為內(nèi)部RAM低128位,外部RAM64KB(低256單元可以使用DPTR和RO、R1
作為間接尋址存放器,而其他單元只能用DPTR作為間接尋址存放器);(4)立即尋址:直接
給出立即數(shù),不涉及尋址空間;(5)變址尋址:只對(duì)程序存放器進(jìn)展尋址;(6)相對(duì)尋址:以
PC的內(nèi)容為基值,加上指令機(jī)器代碼中'相對(duì)地址'形成新的PC值轉(zhuǎn)移;(7)位尋址:尋
址空間包括內(nèi)部RAM位尋址區(qū)(20?2FH)和專用存放器的可尋址位。
4.要訪問片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器,應(yīng)采用哪些尋址方式
答:訪問片外程序存儲(chǔ)器采用變址尋址方式,片外數(shù)據(jù)存儲(chǔ)器采用存放器間接尋址方式,且
用DPTR可以訪問64KB,而用R0或者R1只可訪問低256字節(jié)。
5.在AT89s51片內(nèi)RAM中,(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90Ho請(qǐng)分析下
面各是什么指令,說明源操作數(shù)的尋址方式及按順序執(zhí)行每條指令后的結(jié)果。
答:
指令指令說明源操作數(shù)尋址方式結(jié)果
MOVA,40H將內(nèi)部RAM中40H內(nèi)容直接尋址(A)=48H
傳送到累加器A中
(A)—(40H)
MOVRO,A再將A中內(nèi)容傳送給R0存放器尋址(R0)=48H
(R0)—(A)
MOVPl,將立即數(shù)OFOH送到Pl立即數(shù)尋址(P1)=OFOH
#0F0H口,即Pl.4?Pl.7位1,其
余為0
(PI)-OFOH
MOV@R0,將30H中的內(nèi)容,傳放到直接尋址((R0))=(48H)=38H
30H以R0單元內(nèi)容為地址的
單元中
((R0))一(30H)
MOVDPTR,將立即數(shù)3848傳送給立即數(shù)尋址(DPTR)=3848H
#3848HDPTR數(shù)據(jù)指針
(dptr)-3848H
MOV40H,將內(nèi)部RAM中38H內(nèi)容直接尋址(40H)=40H
38H傳送到40H單元中
(40H)—(38H)
MOVRO,將30H中的內(nèi)容給R0存直接尋址(RO)=38H
30H放器
(RO)—(30H)
MOVPO,RO將R0的內(nèi)容傳送到P0存放器尋址(P0)=38H
(P0)一(R0)
MOVA,@R0將R0內(nèi)容為地址的該單存放器間接尋址(A)=40H
元內(nèi)容傳送給A
(A)一((R0))
MOVP2,PI將Pl的內(nèi)容傳送給P2直接尋址(P2)=0F0H
(P2)—(Pl)
6.指出以下指令的源栗作數(shù)的尋址方式
MOVA,65H直接尋址
MOVA,#65H立即數(shù)尋址
MOVA,@R0存放器間接尋址
MOVA,R2存放器尋址
MOVCA,@A+PC變址尋址
7.內(nèi)部RAM和特殊功能存放器各用什么尋址方式
答:內(nèi)部RAM有存放器尋址方式、直接尋址方式和間接尋址方式;
特殊功能存放器除A外只能進(jìn)展直接尋址。
8.:(A)=5BH,(RI)=30H,(30H)=OCEH,(Pl)=71H,(PSW)=80H,(PC)=2000H,
(205CH)=46H,(SP)=30H,(B)=78H。分別求各條指令執(zhí)行后的結(jié)果(要求進(jìn)展二進(jìn)
制運(yùn)算驗(yàn)證)及標(biāo)志位Cy、P的影響。
(1)MOVA,@R1(A)=0CEHP=1,C不變
(2)MOV40H,30H(40H)=0CEHP和C不變
⑶MOVPl,RI(Pl)=30HP和C不變
(4)MOVCA,@A+PC(A)=46HP=1,C不變
(5)PUSHB(31H)=78H,(SP)=31HP和C不變
(6)POPDPH(DPH)=0CEH,(SP)=29HP和C不變
(7)XCHDA,@R1(A)=05EH,(30H)=CBHP=1,C不變
(8)ADDA,30H(A)=29HP=1,C=1
(9),ADDCA,Pl(A)=CDHP=l,C=0
(10)SUBBA,Pl(A)=E9HP=1,C=1
(11)ANLP1,#OFH(Pl)=01HP和C不變
(12)CLRPSW.7C=0
(13)RLCA(A)=B7HP=0,c=o
(14)ORLC,90HC=1,P不變
9.對(duì)下面一段程序加上機(jī)器碼和注釋,并說明程序運(yùn)行后存放器A、R0和內(nèi)部RAM50H、
51H、52H單元的內(nèi)容。
MOV50H,#50H755050;(50H)-50H
MOVA,50HE550;(A)-(50H)
MOVR0,AF8;(R0)-(A)
MOVA,#30H7430;(A)-30H
MOV@R0,AF6;((R0))-(A)
MOVA,#50H7450;(A)-50H
MOV51H,AF55I;(51H)-(A)
MOV52H,#00H755200;(52H)-00H
答:運(yùn)行后存放器(A)二50H,(RO)二50H,(50H)二30H,⑸尸50H,(52H尸00H
10.區(qū)別以下各指令中20H的含義,在每條指令后加上注釋。
MOVA,#20H將20H立即數(shù)傳送給A
MOV45H,20H將內(nèi)部RAM中20H單元的內(nèi)容傳送到45H中
MOVC,20H.0將內(nèi)部RAM中20H單元內(nèi)容的第。位(最低位)傳送給C
MOVC,20H將內(nèi)部RAM中20H位地址內(nèi)容傳送給C
11.寫出完成以下功能的指令
(1)將立即數(shù)30H送到R1;
(2)將內(nèi)RAM30H中的數(shù)據(jù)送到內(nèi)RAM78H單元;
(3)將立即數(shù)30H送到以R0中內(nèi)容為地址的存儲(chǔ)器中;
(4)將R2中的內(nèi)容送到P1;
(5)將內(nèi)RAM60H單元的數(shù)據(jù)送到外RAM60H單元;
(6)將內(nèi)RAM60H單元的數(shù)據(jù)送到外RAM1060H單元;
(7)將ROMIOOOH單元的內(nèi)容送到內(nèi)RAM3OH單元;
(8)使ACC.7置位;
(9)使累加器的低4位清零;
(10)使P1.2與CY相與,結(jié)果送CY;
(II)立即數(shù)45H、93H進(jìn)展邏輯與、或、異或操作;
(12)兩立即數(shù)求和:1C0H+45H,結(jié)果按上下8位存在30H、31H中。
答案:⑴MOVRI,#30H(2)MOV78H,30H
(3)M0V@R0,#3011(4)M0VPl,R2
(5)MOVA,60H;;
MOVP2,#0;
MOVR0,#60H;
MOVX@RO,A
(6)MOVA,60H;;
MOVDPTR,#1060;
MOVX@DPTR,A
(7)MOVA,#O()H
MOVDPTR,#1000H
MOVCA,@A+DPTR
MOV30H,A
(8)SETBACC.7
(9)ANLA,#0F()H
(10)ANLC,pl.2
(11)與:MOVA,#45H
ANLA,#59H
或:MOVA,#45H
ORLA,#59H
異或:PMOVA,#45H
XRI.A,#59H
(12)CLRC
MOVR2,#l
MOVA,#0C0H
ADDA,#45H
MOV31H,A
MOVA,R2
ADDCA,#0
MOV30H,A
12.寫出以下指令執(zhí)行過程中堆棧的變化
設(shè)堆棧初值為X:
MOVR6,#11H(SP)=x(堆棧不變)
MOVR7,#23H(SP)=x(堆棧不變)
ACALL200H(SP)=X+2
:(X+l)=第4條指令的首址PC低8位(X+2)=第4條指令的首址PC高8位
POP50H(SP)=X-1
POP51H(SP)=X-2
SJMP$
ORG200H
RET
答:執(zhí)行過程中,前面兩條為立即尋址指令,堆棧不變:執(zhí)行第三條ACALL指令時(shí),首先
將程序存放器PC的當(dāng)前值加2,接著先后將PC的低八位和高八位分別進(jìn)棧,(SP)=(SP)+2;
然后再將PC內(nèi)容中的低11位用200H來替代,同時(shí)程序跳到第七條ORG200H中,接著
RET表示子程序返回,將原先壓入堆棧的PC值彈出,(SP)=(SP)-2;最后兩條POP指令執(zhí)
行后將SP所指地址中的內(nèi)容賦給50H,SP減1后再將SP所指地址中的內(nèi)容賦給51H,SP
內(nèi)容再減1給SP,最后程序完畢。
13.請(qǐng)寫出能實(shí)現(xiàn)以下功能的程序段:
(1)一個(gè)16位數(shù)據(jù),上下字節(jié)分別放在20H和21H中,試將該數(shù)乘以2
MOVA,21H
CLRC
RRCA
MOV21H,A
MOVA,20H
RRCA
MOV20H,A
(2)16位二進(jìn)制數(shù)由高位到低位放在30H和31H單元,將其內(nèi)容加1;
MOVA,31H
ADDA,#01H
MOV31H,A
MOVA,30H
ADDCA,#00H
MOV30H,A
(3)將DPTR中的數(shù)據(jù)減5:
CLRC
MOVA,DPL
SUBBA,#O5H
MOVDPL,A
MOVA,DPH
SUBBA,#00H
MOVDPh,A
(4)有3個(gè)位變量X,Y,Z,請(qǐng)編寫程序?qū)崿F(xiàn)丫=X+YZ的邏輯關(guān)系式。
XBIT30H
YBIT31H
ZBIT32H
MOVC,Y
ANLC,Z
MOV20H,C
MOVC,X
ORLC,20H
MOVY,C
14.將一個(gè)按上下字節(jié)存放在21H、20H中的一個(gè)雙字節(jié)乘以2后,再按上下次序?qū)⒔Y(jié)果存
放到22H、21H、20H單元
ORGO
STAR:CLRC
MOV20H,#0E2H;設(shè)低字節(jié)的數(shù)據(jù)是E2H
MOV21H,#OF3H;設(shè)高字節(jié)的數(shù)據(jù)是F3H
MOVA,20H
MOVB,#2H
MULAB
MOV20H,A
MOV23H,B
MOVA,2IH
MOVB,#2H
MULAB
ADDCA,23H
MOV21H,A
MOV22H,B
SJMP$
END
15.試編程,將片外RAM1000H?1050H單元的內(nèi)容置為55H。
MOVP2,#10H
MOVRO,#00H
MOVA,#55H
MOVX@R0,A
MOVR0,#50H
LO:MOVX@R0,A
DJNZR0,L0
SJMP$
END
16.試編程統(tǒng)計(jì)數(shù)據(jù)區(qū)K度的程序,設(shè)數(shù)據(jù)區(qū)從片內(nèi)RAM30H單元開場(chǎng),該數(shù)據(jù)區(qū)以0完
畢,統(tǒng)計(jì)結(jié)果放入2FH中。
MOVR0,#30H
LO:MOVA,@R0
JZLI
INCRI
INCRO
SJMPLO
LI:MOV2FH,R1
17.試編寫程序,將片外RAM20D0H?200FH數(shù)據(jù)區(qū)中的數(shù)據(jù)由大到小排列起來。
ORGO
LO:MOVP2,#20H
MOVR0,#00H
MOVR7,#0FH
CLRFO
LOOP:MOVXA,@RO
MOV31H,A
INCRO
MOVXA,@R0
CLRC
CJNEA,31H,L1
LI:JCL2
DECRO
MOVX@R0,A
MOVA,31H
INCRO
MOVX@RO,A
SETBFO
L2:DJNZR7,L00P
JBFO,LO
SJMP$
END
18.假設(shè)晶振頻率位6MHZ,試計(jì)算下面延時(shí)子程序的延時(shí)時(shí)間
DELAY:MOVR7,#0F6H;1個(gè)機(jī)器周期
LP:MOVR6,#0FAH;1個(gè)機(jī)器周期
DJNZR6,$;2個(gè)機(jī)器周期
DJNZR7,LP;2個(gè)機(jī)器周期
RET;2個(gè)機(jī)器周期
答:機(jī)器周期為2us,那么有:[1+(1+2X250+2)X246+21X2us=247482us
19.試分別編寫延時(shí)20ms和Is的程序
設(shè)晶振頻率為I2M
20ms:
ORGO
MOVR1,#102
LI;MOVRO,#48
L2:NOP
NOP
DJNZR0,L2
NOP
DJNZRI,LI
NOP
NOP
NOP
NOP
NOP
NOP
NOP
END
Is;------------------------------------------------
ORGO
MOVR2,#50
L0:MOVR1,#1(X)
LI:MOVRO,#49
L2:NOP
NOP
DJNZR0,L2
NOP
DJNZRI,LI
DJNZR2,L0
SJMP$
END
20.試編寫利用調(diào)用子程序的方法延時(shí)Imin的程序。
ORGOH
MOVR2,#60
AO:LCALLDLY
DJNZR2,A0
SJMP$
DLY:MOVR2,#50
LO:MOVRI,#100
LI:MOVRO,#49
L2:NOP
NOP
DJNZR0,L2
NOP
DJNZRI,LI
DJNZR2,L0
RET
END
21.用查表程序求0-6之間的整數(shù)的立方。整數(shù)存在A中,查表結(jié)果存入片內(nèi)RAM31H
中。
ORGO
MOVA,#DATA
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV30H,A
SJMP$
TAB:DB0J,8,27,64,125,216
END
假設(shè)立方數(shù)超過一個(gè)字節(jié),在兩個(gè)字節(jié)以內(nèi),由以下程序?qū)崿F(xiàn)。
ORG0000H
MOVA,#5
RLA
MOVRO,A
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV3IH.A;高位
MOVA,RO
INCA
MOVCA,@A+DPTR
MOV30H,A;低位
SJMP$
TAB:DW0,1,8,27,64,125,216
END
22.編寫程序,查找在內(nèi)部RAM的30H?50H單元中出現(xiàn)FFH的次數(shù),并將查找結(jié)果存入
51H單元。
MOVR1,#OOH
MOVR0,#30H
MOVR2,#2IH
LO:MOVA,@RO
CJNEA,#OFFH,L1
INCRI
LI:INCRO
DJNZR2,L0
MOV51H,R1
SJMP$
END
23.試用子程序求多項(xiàng)式:Y=(A+B)2+(B+C)2(要求:兩數(shù)之和不能超過16)
XEQU30H:X代表A
YEQU31H;Y代表B
ZEQU32H;Z代表C
FEQU33H:F中存放計(jì)算結(jié)果Y
MOVR1.X
MOVR2,丫
LCALLL0
MOVR3,A
MOVRI,Y
MOVR2,Z
LCALLLO
ADDA,R3
MOVF,A
Sjmp$
LO:MOVA,RI
ADDA,R2
MOVB,A
MULAB
RET
end
24.(60H)=33H,(61H)=43H,試寫出程序的功能和運(yùn)行結(jié)果。
ORGOOOOh
SS:MOVR0,#61H
MOVR1,#70H
ACALLCRR
SWAPA
MOV@R1,A
DECRO
ACALLCRR
XCHDA,@R1
SJMP$
CRR:MOVA,@R0
CLRC
SUBBA,#30h
CJNEA,#OAH,NEQ
AJMPBIG
NEQ:JCCEN
BIG:SUBBA,#07H
CEN:RET
該程序的運(yùn)行結(jié)果是:(60H)=33H,(61H)=43H,(70H)=C3H
25.內(nèi)部RAM的30H單元開場(chǎng)存放著一組無符號(hào)數(shù),其數(shù)目存放在21H單元中。試編寫程
序,求出這組無符號(hào)數(shù)中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中考物理復(fù)習(xí)主題單元8第19課時(shí)合理利用機(jī)械能小粒子與大宇宙課件
- 主播 課件教學(xué)課件
- 小學(xué)數(shù)學(xué)新人教版一年級(jí)下冊(cè)20以內(nèi)口算練習(xí)題大全
- 《兩只小象》教學(xué)設(shè)計(jì)教學(xué)設(shè)計(jì) 教案
- 智能家居電氣設(shè)施安裝合同
- 幼兒園智能照明系統(tǒng)招投標(biāo)攻略
- 展會(huì)設(shè)備租賃合同
- 幼兒園園長(zhǎng)聘用合同范本
- 建筑公司員工意見箱管理準(zhǔn)則
- 石油提煉班組安全作業(yè)規(guī)范
- (完整版)【部編版】九年級(jí)下冊(cè)《詞四首》-默寫、賞析、練習(xí)題
- 撳針治療兒童變應(yīng)性鼻炎作用機(jī)制
- Unit+6+Understanding+ideas高中英語(yǔ)外研版(2019)必修第一冊(cè)
- 龍華網(wǎng)站建設(shè)方案范文
- 煙草專賣執(zhí)法和案卷制作規(guī)范課件
- 低壓配電柜基礎(chǔ)知識(shí)課件
- 工程設(shè)計(jì)變更申報(bào)表(范本)
- (完整版)隧道機(jī)電施工方案
- 可燃?xì)怏w探測(cè)報(bào)警系統(tǒng)簡(jiǎn)介及使用要求全解析
- 發(fā)動(dòng)機(jī)維修質(zhì)保書范本
- 《大衛(wèi)科波菲爾》課件36張統(tǒng)編高中語(yǔ)文選擇性必修上冊(cè)
評(píng)論
0/150
提交評(píng)論