单片机原理及应用第二版张毅刚--课后习题答案 联系客服

发布时间 : 星期五 文章单片机原理及应用第二版张毅刚--课后习题答案更新完毕开始阅读

11.答:(A)ANL A,#87H

(B)ANL A,#0C3H (C)ORL A,#0CH

12.答:(A)=0CBH。

13.答:(A)=00H,(R3)=0AAH。

14.答:(DPH)=3CH,(DPL)=5FH,(SP)=50H 15.答:(SP)=62H,(61H)=30H,(62H)=70H。 16.答:

MOV PUSH MOV

R7,A Acc A,B

MOVX @DPTR,A

17.答:(D)。 18.答:(C)。

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

增强型的52子系列单片机,片内RAM的地址范围为00H—FFH,因此作为间接寻址寄存器的R0或R1的内容就不受限制。

第4章 AT89S51汇编语言程序的设计与调试

参考答案

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

ORG(ORiGin)汇编起始地址命令;END(END of assembly)汇编终止命令;EQU(EQUate)标

号赋值命令;DB(Define Byte)定义数据字节命令;DW(Define Word)定义数据字命令;DS(Define Storage)定义存储区命令;BIT 位定义命令

2. 答:

手工汇编:通过查指令的机器代码表(表3-2),逐个把助记符指令“翻译”成机器代码,再进行调试和运行。这种人工查表“翻译”指令的方法称为“手工汇编”。

机器汇编:借助于微型计算机上的软件(汇编程序)来代替手工汇编。通过在微机上运行汇编程序,把汇编语言源程序翻译成机器代码。

反汇编:将二进制的机器码程序翻译成汇编语言源程序的过程称为“反汇编”。 3.答:从1000H开始的各有关存储单元的内容(16进制)如下:

4D 41 49 4E 12 34 30 00 00 70

4.在编写子程序时应注意以下问题: (1)子程序的第一条指令前必须有标号。

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

① 绝对调用指令ACALL addr11。被调用的子程序的首地址与绝对调用指令的下一条指令的高5位地址相同,即只能在同一个2KB区内。

② 长调用指令LCALL addr16。addr16为直接调用的目的地址,被调用的子程序可放置在64KB程序存储器区的任意位置。

(3)子程序结构中必须用到堆栈,用来保护断点和现场保护。 (4)子程序返回时,必须以RET指令结束。 (5)子程序可以嵌套,但要注意堆栈的冲突。 5.答:参考程序如下:

MOV

A,45H

ANL A,#0FH ORL A,#0FH MOV

45H,A

6.答:A=80H ,SP=40H,(41H)=50H,(42H)=80H ,PC=8050H 7.答:参考程序如下:

START: MOV

R0,#30H

R2,#20H A,@R0 A,#0AAH,NEXT 51H,#01H EXIT R0 R2,LOOP 51H,#00H

MOV MOV CJNE MOV LJMP INC DJNZ MOV RET

LOOP:

NEXT:

EXIT:

8.答:参考程序如下:

START: MOV

41H,#0

R0,#20H R2,#20H

MOV MOV

LOOP: MOV

A,@R0

NEXT 41H

JNZ INC

R0

NEXT: INC

DJNZ RET

R2,LOOP

9.答:参考程序如下:

ORG 0100H

MOV MOV MOV

R2, #20H A , #21H R1 , A

要比较的数据字节数

DEC R2 MOV MOV DEC R1 CLR C SUBB

A,@R1

A , @R1 R3,A

LOOP:

JNC LOOP1 MOV SJMP

A,@R1 LOOP2 A,R3 R2, LOOP @R0,A

LOOP1: MOV LOOP2: DJNZ

MOV RET

10.答:

(1)SP=SP+1=61H

SP=SP+1=62H

(61H)=PC的低字节=03H (62H)=PC的高字节=20H

(2)PC=3456H (3)不可以

(4)2KB=2048 Byte

11.答:可对程序做如下修改:

ORG 0100H MOV R7, #200

DEL: