- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《微机原理及应用》作业
第三章
教材P92。全部
3-1 指令的格式是由哪些部分组成的?每部分的含义是什么?
答:指令由操作码和操作数组成。在形式上操作码和操作数都是二进制代码。操作码用来表示指令的种类和功能,经由控制器中的指令译码器译码后产生控制信号。操作数是指令的操作对象,表示被操作数据或数据所在的存储单元地址。
3-2 什么是寻址方式?51系列指令系统有哪些寻址方式?
答:指令中给出操作数的方式叫做寻址方式。51系列机给出的寻址方式一般有7中:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址(直接寻址的一个特例――地址指向位单元)。
3-3 对于内部数据存储器00H~1FH区域的访问有哪些寻址方式?对于外部数据存储器的访问有哪些寻址方式?对于特殊功能寄存器的访问有哪些寻址方式?
答:对于内部数据存储器00H~1FH区域的访问有直接寻址、寄存器寻址、寄存器间接寻址三种方式。
对于外部数据存储器的访问只有寄存器间接寻址一种方式(以DPTR或R0、R1为指针)。
对于特殊功能寄存器的访问只有直接寻址一种方式。同时对于内部数据存储器80H~0FFH的128个单元的访问只有寄存器间接寻址一种方式(以R0、R1或SP为指针);借助于两种不同的寻址方式,可以将在地址上重合(80H~0FFH)的SFR和内部RAM高128字节单元的两部分空间加以区分。注意:只有少数51单片机机型的内部RAM具有此区域。
3-4 51系列单片机有哪些标志位?这些标志位存放在哪里?
答:51单片机在程序运行时通常需要一下标志位:
Cy,AC,OV,P,RS1,RS0,它们都存放在特殊功能寄存器PSW(程序状态字寄存器)中。
3-5 分析下列各指令的操作数,指出它们的寻址方式。
MOV R4, 38H ;寄存器寻址,直接寻址
ADD A, @R1 ;寄存器寻址,寄存器间接寻址
MOVC A, @A+DPTR ;寄存器寻址,变址寻址(又称基址寄存器加变址寄存器间接寻址)
MOVX A, @DPTR ;寄存器寻址,寄存器间接寻址
DEC B ;直接寻址
SETB 24H ;位寻址(直接寻址的一种,只是给出的直接地址是位地址)
CJNE A, #100, NEXT ;寄存器寻址,立即寻址,相对寻址
ANL 30H, #00H ;直接寻址,立即寻址
PUSH P1 ;直接寻址
堆栈操作除了用PUSH和POP指令,完全可以用其它指令来完成,举例如下:
PUSH P1
可用下列程序段完成
INC SP
MOV R0, SP
MOV @R0, P1
POP P1
可用下列程序段完成
MOV R0, SP
MOV P1, @R0
DEC SP
提示:上题答案中按操作数先后顺序给出其对应的寻址方式。
3-6 下列各指令或指令组执行前有关寄存器和存储器的状态如下表,要求分析各指令或指令组执行后有关寄存器、存储器和标志位的状态。
内部数据存储器和特殊功能寄存器
外部数据存储器
程序存储器
寄存器名
内容
单元地址
内容
单元地址
内容
单元地址
内容
程序计数器内容
B
64H
73H
10H
900BH
12H
1206H
35H
(PC)=1200H
ACC
03H
72H
11H
900AH
83H
1205H
34H
PSW
80H
71H
00H
9009H
D1H
1204H
33H
标号及标号值
DPL
05H
70H
80H
9008H
79H
1203H
32H
NEXT1=0800H
DPH
90H
9007H
0CH
1201H
31H
NEXT2=0900H
SP
71H
36H
F8H
9006H
23H
1200H
30H
NEXT3=1280H
R0
00H
35H
2BH
9005H
13H
LOOP=1148H
R1
36H
34H
36H
9004H
4DH
R2
35H
33H
74H
9003H
2EH
R3
B7H
32H
59H
9002H
7FH
R4
03H
9001H
54H
R5
F6H
26H
66H
9000H
38H
R6
E4H
25H
55H
R7
21H
24H
44H
P0
7CH
P2
90H
提示:在上表中需注意几点:(PSW)=80H,即Cy=1, AC=0, RS1=RS0=0(故当前工作寄存器区为0区)。工作寄存器区为0区时,R0~R7即为内部数据存储器的00H~07H,所以当指令中出现直接地址00H~07H中的某个时,其初始条件即为R0~R7中某个对应的寄存器的值。另,因为(DPH)=90H, (DPL)=05H, 所以(DPTR)=9005H。标号值实质上是代表标号所在处的指令在程序存储器中的地址
文档评论(0)