单片机原理及应用(第三版)张毅刚课后习题答案完整版 下载本文

-

D2: DJNZ R6,D2

DJNZ R7,D1

RET

;指令执行 1 次为 2μs,总计 125 ×2=250μs

;指令执行时间 2μs,本循环体执行 200 次 ;指令执行时间 2μs

可对程序做如下修

改:

D50ms: D1: D2:

ORG MOV MOV

0100H

125 改为 ;将原来的立即数 123

;增加的指令

R7, #200 R6, #123

DJNZ R6, D2 NOP DJNZ R7, D1 RET

程序修改后的延时时间为: 1+(1+123*2+1+2)*200+2=50003μs=50.003ms

9. 借助表 3-2 ,对如下指令代码(十六进制)进行手工反汇编。

FFH,C0H,E0H, E5H,F0H,F0H

答:

MOV

R7, A

PUSH Acc MOV

A, B

MOVX @DPTR,A

五、简答

1. 说明伪指令的作用。“伪”的含义是什么?常用伪指令有哪些?其功能如何 ?

答:伪指令是程序员发给汇编程序的命令,只有在汇编前的源程序中才有伪指令,即在汇编过程中的用来控制汇编过程的命令。所谓“伪”是体现在汇编后,伪指令没有相应的机器代码产生。常用伪指令及功能如下:

--

-

ORG(ORiGin)汇编起始地址命令; END(ENDof assembly) 汇编终止命令; EQU(EQUate)标号赋值命令; DB(Define Byte )定义数据字节命令; DW( Define

Word)定义数据字命令;DS(Define Storage )定义存储区命令; BIT 位定义命令 2. 解释下列术语:

手工汇编、机器汇编、反汇编

答:

手工汇编:通过查指令的机器代码表 (表 3-2 ),逐个把助记符指令 “翻译”成

机器代码,再进行调试和运行。这种人工查表“翻译”指令的方法称为“手工汇编”。

机器汇编:借助于微型计算机上的软件 ( 汇编程序 ) 来代替手工汇编。通过在

微机上运行汇编程序,把汇编语言源程序翻译成机器代码。

反汇编:将二进制的机器码程序翻译成汇编语言源程序的过程称为“反汇编”。 3. 设计子程序时应注意哪些问题?

答:编写子程序时应注意以下问题:

子程序的第一条指令前必须有标号。

主程序调用子程序,有如下两条子程序调用指令:

① 绝对调用指令 ACALL addr11。被调用的子程序的首地址与绝对调用指令的下

一条指令的高 5 位地址相同,即只能在同一个 2KB区内。

② 长调用指令 LCALL addr16。addr16 为直接调用的目的地址,被调用的子程序

可放置在 64KB程序存储器区的任意位置。

子程序结构中必须用到堆栈,用来保护断点和现场保护。

子程序返回时,必须RET指令结束。

子程序可以嵌套,但要注意堆栈的冲突。

MOV A,@R0)中, 4. 为什么对基8051 子系列单片机,其寄存器间接寻址方式

本型的 (例如 R0 R1的内容 规R0 R1 的内容不能超7FH?而对增强型8052 子系列单片机,

或 的 定 或 过

就不受限? 制

--

-

答:基本型的 8051 子系列单片机,由于其片内 RAM的地址范围为 00H~7FH,而 80H~ FFH 为特殊功能寄存器区, 而对特殊功能寄存器寻址, 只能使用直接寻址方式。 对片内 RAM寻址,当使用寄存器间接寻址是采用 R0或 R1 作为间接寻址的,因此 R0或 R1的内

容不能超过 7FH。

增强型的 8052 子系列单片机,片内 RAM的地址范围为 00H~ FFH,因此作为间接

寻址寄存器的 R0或 R1的内容就不受限制。

第 4 章 思考题及习题 4 参考答案

一、填空

1.外部中断 1 的中断入口地址为

答: 0013H;001BH

2.若( IP )=00010100B,则优先级最高者为

答:外部中断 1,定时器 T1

3. AT89S52 单片机响应中断后,产生长调用指令 LCALL,执行该指令的过程包括:首先

的内容压入堆栈,以进行断点保护,然后把长调用指令的 址送入 ,使程 序执行转向

中的中断地址区。

16 位地

,最低者为

。定时器 T1 的中断入口地址为

答: PC、PC、程序存储器

4. AT89S52单片机复位后,中断优先级最高的中断源是

答:外部中断 0

5.当 AT89S52单片机响应中断后,必须用软件清除的中断请求标志是

答:串行中断、定时器 / 计数器 T2中断

--

-

二、单选

--