版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
练习题3答案
i.简述以下根本概念:指令,指令系统,机器语言,汇编语言。
答:指令是单片机CPU执行某种操作的命令。
指令系统是一台计算机所能执行的指令集合。
机器语言即二进制代码语言,是计算机可以直接识别。
汇编语言是用助记符、字符串和数字等来表示指令的程序语。
2.简述AT89s51单片机的指令格式
答:该单片机的指令由两局部组成,即操作码和操作数。操作码用来规定指令进展什么操作,
而操作数那么是指令操作的对象,操作数可能是一个具体的数据,也可能是指出到哪里取得
数据的地址或符号。指令格式一般为:
[标号:]操作码[操作数口[,操作数2][,操作数3][;注释]
3.简述AT89s51的寻址方式和所能涉及的寻址空间
答:共有7种寻址方式,见表3・2。
分别是:(1)存放器寻址:寻址范围为通用存放器组,共4组32个,但只能使用当前存放器
组,因此使用前需要通过对PSW种的RSI、RSO位的状态进展设置;(2)直接寻址:寻址范
表3-2寻址方式及相应的寻址存储器范围
寻址方式寻址存储器范围
立即寻址程序存储器ROM
直接寻址片内RAM低128B,特殊功能存放器
存放器寻址工作存放器R0~R7,A,C,DPTR,AB
存放器间接寻址片内RAM低128B,片外RAM
变址寻址程序存储器ROM(@A+DPTR,@A+PC)
相对寻址程序存储器ROM(相对寻址指令的下一指令PC值加一128〜+127)
位寻址片内RAM的2DH〜2FH字节地址中所有的位,可位寻址的特殊功能存放器
围为内部RAM,包括低128位用户RAM区和高128位专用存放器;(3)存放器间接寻址:
寻址范围为内部RAM低128位,外部RAM64KB(低256单元可以使用DPTR和RO、R1
作为间接寻址存放器,而其他单元只能用DPTR作为间接寻址存放器);(4)立即寻址:直接
给出立即数,不涉及寻址空间;(5)变址寻址:只对程序存放器进展寻址;(6)相对寻址:以
PC的内容为基值,加上指令机器代码中'相对地址'形成新的PC值转移;(7)位寻址:寻
址空间包括内部RAM位寻址区(20〜2FH)和专用存放器的可寻址位。
4.要访问片外程序存储器和片外数据存储器,应采用哪些寻址方式
答:访问片外程序存储器采用变址寻址方式,片外数据存储器采用存放器间接寻址方式,且
用DPTR可以访问64KB,而用R0或者R1只可访问低256字节。
5.在AT89s51片内RAM中,(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90Ho请分析下
面各是什么指令,说明源操作数的寻址方式及按顺序执行每条指令后的结果。
答:
指令指令说明源操作数寻址方式结果
MOVA,40H将内部RAM中40H内容直接寻址(A)=48H
传送到累加器A中
(A)—(40H)
MOVRO,A再将A中内容传送给R0存放器寻址(R0)=48H
(R0)—(A)
MOVPl,将立即数OFOH送到Pl立即数寻址(P1)=OFOH
#0F0H口,即Pl.4〜Pl.7位1,其
余为0
(PI)-OFOH
MOV@R0,将30H中的内容,传放到直接寻址((R0))=(48H)=38H
30H以R0单元内容为地址的
单元中
((R0))一(30H)
MOVDPTR,将立即数3848传送给立即数寻址(DPTR)=3848H
#3848HDPTR数据指针
(dptr)-3848H
MOV40H,将内部RAM中38H内容直接寻址(40H)=40H
38H传送到40H单元中
(40H)—(38H)
MOVRO,将30H中的内容给R0存直接寻址(RO)=38H
30H放器
(RO)—(30H)
MOVPO,RO将R0的内容传送到P0存放器寻址(P0)=38H
(P0)一(R0)
MOVA,@R0将R0内容为地址的该单存放器间接寻址(A)=40H
元内容传送给A
(A)一((R0))
MOVP2,PI将Pl的内容传送给P2直接寻址(P2)=0F0H
(P2)—(Pl)
6.指出以下指令的源栗作数的寻址方式
MOVA,65H直接寻址
MOVA,#65H立即数寻址
MOVA,@R0存放器间接寻址
MOVA,R2存放器寻址
MOVCA,@A+PC变址寻址
7.内部RAM和特殊功能存放器各用什么寻址方式
答:内部RAM有存放器寻址方式、直接寻址方式和间接寻址方式;
特殊功能存放器除A外只能进展直接寻址。
8.:(A)=5BH,(RI)=30H,(30H)=OCEH,(Pl)=71H,(PSW)=80H,(PC)=2000H,
(205CH)=46H,(SP)=30H,(B)=78H。分别求各条指令执行后的结果(要求进展二进
制运算验证)及标志位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.对下面一段程序加上机器码和注释,并说明程序运行后存放器A、R0和内部RAM50H、
51H、52H单元的内容。
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
答:运行后存放器(A)二50H,(RO)二50H,(50H)二30H,⑸尸50H,(52H尸00H
10.区别以下各指令中20H的含义,在每条指令后加上注释。
MOVA,#20H将20H立即数传送给A
MOV45H,20H将内部RAM中20H单元的内容传送到45H中
MOVC,20H.0将内部RAM中20H单元内容的第。位(最低位)传送给C
MOVC,20H将内部RAM中20H位地址内容传送给C
11.写出完成以下功能的指令
(1)将立即数30H送到R1;
(2)将内RAM30H中的数据送到内RAM78H单元;
(3)将立即数30H送到以R0中内容为地址的存储器中;
(4)将R2中的内容送到P1;
(5)将内RAM60H单元的数据送到外RAM60H单元;
(6)将内RAM60H单元的数据送到外RAM1060H单元;
(7)将ROMIOOOH单元的内容送到内RAM3OH单元;
(8)使ACC.7置位;
(9)使累加器的低4位清零;
(10)使P1.2与CY相与,结果送CY;
(II)立即数45H、93H进展逻辑与、或、异或操作;
(12)两立即数求和:1C0H+45H,结果按上下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.写出以下指令执行过程中堆栈的变化
设堆栈初值为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
答:执行过程中,前面两条为立即寻址指令,堆栈不变:执行第三条ACALL指令时,首先
将程序存放器PC的当前值加2,接着先后将PC的低八位和高八位分别进栈,(SP)=(SP)+2;
然后再将PC内容中的低11位用200H来替代,同时程序跳到第七条ORG200H中,接着
RET表示子程序返回,将原先压入堆栈的PC值弹出,(SP)=(SP)-2;最后两条POP指令执
行后将SP所指地址中的内容赋给50H,SP减1后再将SP所指地址中的内容赋给51H,SP
内容再减1给SP,最后程序完毕。
13.请写出能实现以下功能的程序段:
(1)一个16位数据,上下字节分别放在20H和21H中,试将该数乘以2
MOVA,21H
CLRC
RRCA
MOV21H,A
MOVA,20H
RRCA
MOV20H,A
(2)16位二进制数由高位到低位放在30H和31H单元,将其内容加1;
MOVA,31H
ADDA,#01H
MOV31H,A
MOVA,30H
ADDCA,#00H
MOV30H,A
(3)将DPTR中的数据减5:
CLRC
MOVA,DPL
SUBBA,#O5H
MOVDPL,A
MOVA,DPH
SUBBA,#00H
MOVDPh,A
(4)有3个位变量X,Y,Z,请编写程序实现丫=X+YZ的逻辑关系式。
XBIT30H
YBIT31H
ZBIT32H
MOVC,Y
ANLC,Z
MOV20H,C
MOVC,X
ORLC,20H
MOVY,C
14.将一个按上下字节存放在21H、20H中的一个双字节乘以2后,再按上下次序将结果存
放到22H、21H、20H单元
ORGO
STAR:CLRC
MOV20H,#0E2H;设低字节的数据是E2H
MOV21H,#OF3H;设高字节的数据是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单元的内容置为55H。
MOVP2,#10H
MOVRO,#00H
MOVA,#55H
MOVX@R0,A
MOVR0,#50H
LO:MOVX@R0,A
DJNZR0,L0
SJMP$
END
16.试编程统计数据区K度的程序,设数据区从片内RAM30H单元开场,该数据区以0完
毕,统计结果放入2FH中。
MOVR0,#30H
LO:MOVA,@R0
JZLI
INCRI
INCRO
SJMPLO
LI:MOV2FH,R1
17.试编写程序,将片外RAM20D0H〜200FH数据区中的数据由大到小排列起来。
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.假设晶振频率位6MHZ,试计算下面延时子程序的延时时间
DELAY:MOVR7,#0F6H;1个机器周期
LP:MOVR6,#0FAH;1个机器周期
DJNZR6,$;2个机器周期
DJNZR7,LP;2个机器周期
RET;2个机器周期
答:机器周期为2us,那么有:[1+(1+2X250+2)X246+21X2us=247482us
19.试分别编写延时20ms和Is的程序
设晶振频率为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.试编写利用调用子程序的方法延时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之间的整数的立方。整数存在A中,查表结果存入片内RAM31H
中。
ORGO
MOVA,#DATA
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV30H,A
SJMP$
TAB:DB0J,8,27,64,125,216
END
假设立方数超过一个字节,在两个字节以内,由以下程序实现。
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.编写程序,查找在内部RAM的30H〜50H单元中出现FFH的次数,并将查找结果存入
51H单元。
MOVR1,#OOH
MOVR0,#30H
MOVR2,#2IH
LO:MOVA,@RO
CJNEA,#OFFH,L1
INCRI
LI:INCRO
DJNZR2,L0
MOV51H,R1
SJMP$
END
23.试用子程序求多项式:Y=(A+B)2+(B+C)2(要求:两数之和不能超过16)
XEQU30H:X代表A
YEQU31H;Y代表B
ZEQU32H;Z代表C
FEQU33H:F中存放计算结果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,试写出程序的功能和运行结果。
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
该程序的运行结果是:(60H)=33H,(61H)=43H,(70H)=C3H
25.内部RAM的30H单元开场存放着一组无符号数,其数目存放在21H单元中。试编写程
序,求出这组无符号数中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西贵港市覃塘区2023-2024学年七年级下学期4月期中考试英语试题(含答案)
- 开放作文之观点看法类-2024年中考英语写作常考题型专项突破
- 视频系统的实时性优化
- 宜君养猪场改扩建项目可行性研究报告
- 成都2024年07版小学三年级下册英语第3单元真题试卷
- 重庆2024年09版小学五年级英语第六单元期中试卷
- 名著阅读(讲练)-2023年部编版中考语文一轮复习(原卷版)
- 2024年医用液氧贮槽项目投资申请报告代可行性研究报告
- 2023年固态地振动强度记录仪投资申请报告
- 三维数字内容制作-三维动画毛发制作流程规范
- Starter Unit 3 Section A(Pronunciation)课件人教版2024新教材七年级上册英语
- 《水培植物我养护》教案
- 护理用药安全管理幻灯片
- 汽车服务企业管理教案
- 中医诊所一人一方代煎制粉丸委托书
- 成人有创机械通气气道内吸引技术操作解读
- 中国老年糖尿病诊疗指南解读(2024版)
- 唐诗宋词人文解读智慧树知到期末考试答案2024年
- MOOC 房地产管理-华中科技大学 中国大学慕课答案
- 2.3周而复始的循环课件教科版高中信息技术必修1
- ISO内审检查表(完整版)
评论
0/150
提交评论