- 1、本文档共181页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第三章MCS-51单片机指令系统及程序设计
3.1单片机指令基础
3.2寻址方式
3.3指令系统
3.4汇编语言程序设计基础
3.5程序设计
3.6习题
实训三单片机输入/输出口的设计与使用
3.1单片机指令基础
3.1.1指令格式
指令的表示方法称为指令格式。MCS-51单片机汇编语
言指令的基本格式由以下几个部分组成:
[标号:]操作码[操作数][;注释]
3.1.2指令分类
MCS-51系列单片机指令系统共有111条指令。指令有功
能、时间、空间三种属性。
(1)按指令所占用存储空间的长度分类,指令可分为三
类:
①单字节指令:共49条;
②双字节指令:共45条;
③三字节指令:共17条。
(2)按指令执行时间分类,指令可分为三类:
①单机器周期指令:共64条;
②双机器周期指令:共45条;
③四机器周期指令:共2条,即乘法和除法指令。
指令执行时间和指令长度是两个完全不同的概念,前者
表示执行一条指令所用的时间;后者表示存放一条指令在
ROM中所占的存储空间,两者不能混淆。
(3)按指令功能分类,指令可分为数据传送类、算术运
算类、逻辑运算类、位操作类和控制转移类指令等五大类。
3.1.3指令系统中的符号约定
指令的一个重要组成部分是操作数,为了表示指令中各
种类型的操作数,MCS-51单片机指令系统采用了如下符号
约定:
(1) Rn:n=0~7,表示当前工作寄存器区的8个工作寄
存器R0~R7。
(2) Ri:i=0,1,表示当前工作寄存器区的两个工作寄
存器R0和R1,i只能取值0或1。
(3) direct:表示8位内部数据存储单元的地址。当取值
在00H~7H时,表示内部数据RAM;当取值在80H~0FFH
时,表示特殊功能寄存器。
(4) #:立即数符号,在指令系统中的数据和地址均用
十六进制数表示,为便于区别,用“#”号表示数据(立即数)。
“#”号是立即数的标记,凡数据前有“#”,代表该十六制数
为立即数,凡立即数必须在前面标记“#”。
(5) addr11:11位目的地址,用于ACALL和AJMP指令,
可在下条指令地址所在的同一2 KBROM范围内调用或转移。
(6) ddr16:16位目的地址,用于ACALL和AJMP指令,
能在64 KBROM范围内任意值调用或转移。
(7) rel:带符号的8位偏移地址,用于SJMP和条件转移
指令,其范围是相对于下一条指令第1字节地址的-128~
+127个字节。Rel≤7FH,属于0~+127B,程序向下转移;
rel≥80H(补码),属于-128B~0,则程序向上转移。
(8) bit:位地址,代表片内RAM中的可寻址位00H~
7FH及SFR中可寻址位。当取值为00H~7FH时,表示内部
数据RAM20H~2FH单元中的每一位地址。
(9) @:间接寻址符,表示其后的寄存器的值为操作数
的地址。@Ri表示寄存器Ri(i=0或1)中存放的是操作数的地
址。如果该地址是内部数据存储区中的地址,其取值范围为
00H~7FH;如果该地址是外部数据存储区中的地址,其取
值范围为00H~0FFH。当Ri的值在00H~7FH之间时,它表
示的既可能是内部数据存储空间中的地址,也可能是外部数
据存储空间中的地址,需要通过指令操作码来区分。
@DPTR:表示DPTR中存放的是操作数的地址,该地
址位于外部数据存储空间,其取值范围为0000H~0FFFFH。
(10) $:本指令的起始地址。
3.2寻址方式
1.立即寻址
立即寻址是直接给出操作数本身。操作数以指令字节的
形式存放于程序存储器中。操作数前加立即数符“#”。如果
立即数的最高位为A~F,字符前加前导“0”,以便区别于
标号。
2.直接寻址
直接寻址是以地址形式给出操作数的直接地址。直接寻
址范围为内RAM128B和特殊功能寄存器。
例如:设内部RAM3AH单元的内容是48H。
MOVA,3AH;将内
RAM3AH单元中的数据传至A中
执行过程如图3-1所示。
图3-1直接寻址示意图
3.寄存器寻址
寄存器寻址的操作数存放在规定的寄存器中,可直接以
寄存器的名字表示操作数地址,即寄存器中的内容为操作数。
寻址可用的寄存器有:工作寄存器R0~R7、累加器A、通
用寄存
文档评论(0)