微机原理及应用作业4标准答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机原理及应用》作业4标准答案

1.什么是指令的寻址方式?分析说明51单片机的7种寻址方式。(略)

2.51单片机可以使用间接寻址方式指令的工作寄存器及特殊功能寄存器有哪些?

答:可以使用间接寻址方式的工作寄存器有R0、R1;特殊功能寄存器有DPTR

3.51单片机指令中的直接地址都可以是哪些存储器空间?

答:内部数据存储器空间、特殊功能寄存器空间

4.51单片机的SFR及位地址只能用什么寻址方式访问?

答:SFR只能用直接寻址方式,位地址只能用位寻址方式。

5.分析说明MOVX A, @DPTR与MOVX A, @R0的异同。

答:相同点:此2条指令均为寄存器间接寻址方式访问外部数据存储器或I/O端口,将相应的地址指针寄存器所指向的外部数据存储器某单元中或某I/O端口的数据取出送入累加器A中。

不同点:此2条指令的寻址范围不同,MOVX A, @DPTR的寻址范围为64K,而MOVX A, @R0的寻址范围为256个字节。

6.A=30H,DPTR=3050H,指令MOVC A,@A+DPTR在程序存储器2000H,执行此指令后,A的内

容如何变化?

答:A+DPTR=3080H,执行此指令后,将程序存储器3080H单元中的数据送到累加器A中。

7.A=30H,DPTR=3050H,指令MOVC A,@A+PC在程序存储器2000H,执行此指令后,A的内容

如何变化?

答:此指令为单字节指令,且此指令位于程序存储器2000H,所以执行此指令时A+PC=30H+2001H=2031H,所以执行此指令后,将程序存储器2031H单元中的数据送到累加器A中。

8.(SP)=29H,A=35H,执行PUSH A后,堆栈区内容如何变化?(SP)=?

答:入栈指令PUSH的执行过程为:首先自动调整堆栈指针寄存器SP内容加1,然后将PUSH指令所涉及的直接地址单元中的数据存入此时堆栈指针寄存器SP所指向的堆栈栈顶单元中。

所以执行PUSH A指令后,SP内容首先自动加1,由29H变为2AH,然后将累加器A中内容35H送入堆栈区的2AH单元中,堆栈区其他单元内容不变,而(SP)=2AH

9.(SP)=30H,(30H)=28H,执行POP 35H指令的结果是什么?(SP)=?

答:出栈指令POP的执行过程为:首先将堆栈指针寄存器SP所指向的堆栈区栈顶单元内的数据送入POP指令所涉及的直接地址单元中。然后自动调整堆栈指针寄存器SP内容减1,指向新的堆栈区栈顶单元。

所以执行POP 35H指令时,首先将SP所指向的堆栈区栈顶单元30H内的数据28H送入POP指令所涉及的直接地址单元35H中,然后自动调整堆栈指针寄存器SP内容减1,由30H变为2FH,堆栈区其他单元内容不变,(SP)=2FH。

10.ADD A,#01H和INC A指令的执行结果有何异同?

答:相同点:均执行累加器内容加1操作。

不同点:ADD A,#01H影响PSW中相关标志位的状态,而INC A不影响。

11.所有控制转移指令实现转移的本质是什么?

答:所有控制转移指令实现转移的本质就是以不同的方式强行改变程序计数器PC的值,从而使得程序转移。

12.AJMP LOOP指令首字节在程序存储器2000H,标号LOOP所在指令首字节在程序存储器

2030H处,分析说明此指令的机器语言指令是什么?

答:AJMP指令机器指令的构成规则为a10a9a800001a7a6a5a4a3a2a1a0

按照AJMP指令的执行过程,AJMP LOOP指令首字节在程序存储器2000H,执行时PC首先自动加2,由2000H变为2002H(0010 0000 0000 0010),然后保留高5位0010

0 不变,将低11位置换位机器指令中的a10a9a8a7a6a5a4a3a2a1a0形成新的PC值0010 0

a10a9a8a7a6a5a4a3a2a1a0,即转移目标,此处为2030H(0010 0000 0011 0000),所以一一对应可知,指令中的a10a9a8a7a6a5a4a3a2a1a0应为000 0011 0000。所以此题中的AJMP LOOP所对应的机器语言指令应为00000001 0011 0000,即01 30H。

13.执行指令JB 20H,LP时,判断的是什么?

答:判断的是可寻址位20H的状态。

14.(A)=86H,C=0,执行完指令 CJNE A,#95H后,进位位C= 1 、A= 86H

15.子程序PR1首地址为3680H,指令LCALL PR1的地址为2500H,SP=19H,执行此指令后,SP=

1BH 、PC= 3680H 、((SP))= 25H 、((SP-1))= 03H 。

16.RET指令位于程序存储器2030H处,(SP)=30H,(30H)=28H、(2FH)=30H,执行RET后,(PC)=?

程序从哪里继续执行?

答:2830H

17.程序如下:

ORL P1,#58H

ANL P1, #67H

执行第一条指令后:P1.3= 1 、P1.4= 1 、P1.6= 1 ;

执行第二条指令后:P1.3= 0 、P1.4= 0 、P1.7= 0 ;

相关文档
最新文档