单片机原理及应用课后习题答案__张兰红(5)

2019-03-27 16:20

http://www.wkfxw.com 文库分享网

HERE: SJMP HERE

3.21 试编程:引用“或”运算,使任意 8 位二进制数的符号位必为“1”。 解: ORG 2000H START:ORL A,#80H

3.22 请思考:引用“异或”运算,怎样可使一带符号数的符号位改变、数据位不变:怎样可使该数必 然变“0”。

解: 将该数与 80H 相异或,就可以改变其符号位,而数值位保持不变。 将该数与其本身相异或,就可以使该数必然为 0。 3.23 要选择工作寄存器组,可有几种编程办法? 解:可以采用如下三种办法: (1) SETB PSW.4 SETB PSW.3

(2) ORL PSW,#18H (3) MOV PSW,#18H

3.24 设 ROM、片内 RAM、片外 RAM 各有关单元的内容示如下图,问执行下列程序段后(A) =?

0000 AJMP 030H ORG 0030H

0030 MOV R0,#32H

29

MOV A,@R0 MOV R1,A MOVX A,@R1 MOVC A,@A+DPTR 30H 33H 32H 31H 30H 31H 32H 33H

片内RAM 30H 33H 32H 31H 32H 30H 33H 31H 片外RAM

0030H

http://www.wkfxw.com 文库分享网

0033H 0032H 0031H 30H 33H 31H 32H ROM

解: (A)=30H

3.25 若在片内 RAM30H 单元中有二位压缩的 BCD 码 95H,问执行下列程序后,片内 RAM30H 单

元的内容是什么?31H、32H 的内容又是什么?并写出 BCD 码十进制调整的过程。 MOV R0,#30H MOV A,@R0 ANL A,#0FH MOV R3,A MOV A,@R0 SWAP A

ANL A,#0FH ADD A,R3 DA A

MOV @R0,A MOV R3,A INC R0

ANL A,#0FH MOV @R0,A INC R0 MOV A,R3 ANL A,#0F0H SWAP A MOV @R0,A RET

解: (30H)=14H;(31H)=04H;(32H)=01H;

30

第 4 章 MCS51 汇编语言程序设计

4.1 请解释下列名词:

机器码 助记符 操作码 操作数 源程序 目标程序 汇编程序 汇编语言 汇编语言程 序 汇编指令 汇编 机器汇编 人工汇编 解:机器码 二进制代码形式的指令

操作码 用指令的英文缩写表示,便于辨识指令的功能,也便于记忆,称为助记符。

操作数 是参与该指令操作的操作数或操作数所在的地点(寻址方式),有时,用一个表达式

http://www.wkfxw.com 文库分享网

来表

示一个操作数,例如#TAB 十 1。 源程序 汇编语言程序与高级语言程序 目标程序 二进制代码形式的程序 汇编程序 机器汇编时用到的软件

汇编语言 用缩写的英文单词表示操作码,用字母、数字表示操作数的语言 汇编语言程序 用汇编指令书写的程序

汇编指令 用缩写的英文单词表示操作码,用字母、数字表示操作数的指令 汇编 将汇编语言源程序翻译成目标程序的过程 机器汇编 由机器完成汇编工作

人工汇编 由编程人员手工完成汇编工作。

4.2 经过汇编后,下列各条语句的标号将是什么数值? ORG 2000H TABLE: DS 10

WORD: DB 15,20,25,30 FANG: EQU 1000H BEGIN: MOV A,R0

解:TABLE=2000H;WORD=200AH;FANG=1000H;BEGIN=200EH

4.3 下列程序段经过汇编后,从 2000H 开始的各有关存储单元的内容将是什么? ORG 2000H TAB: DS 5 DB 10H,10 DW 2100H ORG 2050H

31

DW TAB

DB “WORK”

解:从 2000H 到 2004H 单元内容为预留的 (2005H)=10H ;(2006H)=0AH (2007H)=00H ;(2008H)=21H (2050H)=00H ;(2051H)=20H (2052H)=57H ;(2053H)=4FH (2054H)=52H ;(2055H)=4BH

4.4 下列程序段经过汇编后,从 1000H 开始的各有关存储单元的内容将是什么? ORG 1000H

TAB1: EQU 1234H TAB2: EQU 3000H DB “START” DW TAB1,TAB2

解: (1000H)=53H ;(1001H)=54H (1003H)=52H ;(1004H)=54H (1005H)=34H ;(1006H)=12H (1007H)=00H ;(1008H)=30H 4.5 有程序如下:

http://www.wkfxw.com 文库分享网

CLR C CLR RS1 CLR RS0 MOV A,#38H MOV R0,A MOV 29H,R0 SETB RS0 MOV R1,A MOV 26H,A MOV 28H,C

要求:(1) 区分哪些是位操作指令?哪些是字节操作指令

32

(2) 写出程序执行后,片内 RAM 有关单元的内容。 (3) 译成机器码。

(4) 按汇编语言程序的标准格式书写,要求有各条指令的存放地址和必要的注释。 解: (1) 位操作指令为 CLR、SETB 指令,再加上MOV 28H,C

(2) (C)=0;(RS1)=0;(RS0)=1;(A)=38H;(R0)=38H;(29H)=38H;(R1)=38H;(26H)=38H; (28H)=0

(3)、(4)略。

4.6 试编程: 将两个四位二进制数并存与一个字节。

解: 设两个四位二进制数分别存放于 R0 和 R1 的低半字节,合并后的结果存于 R2 中。 ORG 2000H

START:MOV A,R1 SWAP A ORL A,R0 MOV R2,A SJMP $

4.7 试编程: 有两个双字节压缩的 BCD 码数相加,设这两待加数分别按先低后高原则存放在 30H、

31H 和 40H、41H 单元,和要求放回 30H、31H 单元。 解: ORG 0050H

START:MOV R0,#30H MOV A,@R0 ADD A,40H DA A

MOV @R0 ,A INC R0 MOV A,@R0 ADDC A,41H DAA

MOV @R0 ,A SJMP $ END START

4.8 试编程:将累加器 A内容低四位送片外 RAM 7AH 单元,高 4位送片外 RAM 7BH单元,

http://www.wkfxw.com 文库分享网

7 AH、

33

7BH 单元的高 4 位均清零。 解: ORG 0050H START:MOV 7CH,A ANL 7AH,#0FH MOV 7AH,A MOV A,7CH ANL A,#0F0H SWAP A

MOV 7BH ,A SJMP $ END START

4.9 试编程: 将片内 RAM 50H、51H 单元二个无符号数中较小的数存与 60H 单元。 解: ORG 2000HH START:CLR C MOV A,50H SUBB A,51H JC LESS

MOV 60H ,51H SJMP ELSE

LESS: MOV 60H,50H ELSE:

4.10 试编程: 将片内 RAM 60H~69H 单元中的十个数相加,和的低 8 位存入 7EH,高 8 位存入 7FH。

解: ORG 2000H

START:MOV 7FH,#00H MOV R1,#09H MOV R0,#60H MOV A,@R0 INC R0

LOOP: ADD A,@R0 JNC LP1 INC 7FH

34

LP1: INC R0 DJNZ R1,LOOP MOV 7EH,A DONE:

4.11 试编程: 统计从片内 RAM 60H 单元起所存 60 个数中“0”的个数,并存入工作寄存器 R7。

解: 按照题意看,本题所用单片机是 52 子系列机型,符合题意要求的程序为: ORG 2000HH


单片机原理及应用课后习题答案__张兰红(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电话英语-情景会话

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: