- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
练习与思考题5
1. 用于程序设计的语言分为哪几种?它们各有什么特点?
答:51系列单片机的编程语言可以分为汇编语言和高级语言(如C语言)两种,各自的特点如下:
名称
特点
缺点
优点
适用场合
汇编语言
用符号书写指令(用助记符表示操作码,特殊符号表示操作数)
机器不能直接识别;程序员必须了解机器的结构和指令系统,不易推广和普及;不能移植,不具备通用性
较易为人们识别、记忆和读写
实时控制系统
高级语言
用以英语为基础的语句编程
机器不能直接识别;执行时间长
易于推广和交流;不依赖于机器,具有通用性
科学运算和数据处理
2. 说明伪指令的作用。“伪”的含义是什么?常用的伪指令有哪些?其功能是什么?
答:伪指令是在“机器汇编”过程中,用来对汇编过程进行某种控制或者对符号和标号进行赋值。“伪”的含义是指这些指令不属于指令系统中的指令,汇编时也不产生机器代码。常用伪指令有ORG、EQU、DATA、DB、DW、DS、BIT 、END。
功能:
ORG --指出后面程序块或数据块在程序存储器中存放的起始地址。
EQU --赋值命令
DATA--对数据地址或代码地址赋予规定的字符名称
DB --定义字节数据
DW --定义字数据
DS--从指定的地址单元开始,保留若干单元备用。
BIT --定义位地址符号命令
END --汇编结束命令
3. 设常量和数据标号的定义为:
ORG 2000H
DAT1: DB 1, 2, 3, 4, 5
DAT2: DB ‘ABCD’
DAT3: DW 1200H,-2
TAB: DW DAT1, DAT3
(1)画出上述数据或地址的存储形式。
(2)写出各标号的地址。
答:(1)
地址
内容(H)
2000H
01
02
03
04
05
2005H
41
42
43
44
2009H
12
00
FF
FE
200DH
20
00
20
09
(2)DAT1=2000H; DAT2=2005H; DAT3=2009H; TAB =200DH
4. 编写双字节加法程序。要求:被加数放在内部RAM的30H(高字节)、31H(低字节)单元中,加数存放在内部RAM的32H(高字节)和33H(低字节)中,运算结果放存放在30H,31H中,进位存放在位寻址区的00H位。
答: ORG 0000H
MOV A, 31H
ADD A, 33H
MOV 31H, A
MOV A, 30H
ADDC A, 32H
MOV 30H, A
MOV 00H, C
SJMP $
END
5. 试编写程序,找出片内RAM 30H~5FH单元中无符号数的最大数,并将结果存入60H单元。
答: ORG 0000H
MOV R0, #30H
MOV R7, #2FH
MOV A, @R0
AGAIN: INC R0
MOV B, A
CLR C
SUBB A, @R0
JNC L1
MOV A, @R0
AJMP L2
L1: MOV A, B
L2: DJNZ R7, AGAIN
MOV 60H, A
SJMP $
END
6.试编写程序,统计片内RAM的20H~5FH单元中出现55H的次数,并将统计结果送60H单元。
答: TAB EQU 20H
ORG 0000H
START: MOV 60H, #0
MOV R0, #TAB
LOOP2: MOV A, #55H
CLR C
SUBB A, @R0
JNZ NEXT
INC 60H
NEXT: INC R0
CJNE R0, #60H, LOOP2
SJMP $
END
7.编写程序,将片外数据存储区中3000H~30FFH单元全部清零。
答: ORG 0000H
START: MOV A, #0
MOV R7, #0
MOV DPTR, #3000H
LOOP: MOVX @DPTR, A
INC DPTR
DJNZ R7, LOOP
SJMP $
END
8. 将外部R
原创力文档


文档评论(0)