没有合适的资源?快使用搜索试试~ 我知道了~
MCS-51单片机指令系统与汇编语言程序设计.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 153 浏览量
2022-06-14
11:13:12
上传
评论
收藏 382KB DOC 举报
温馨提示
试读
43页
MCS-51单片机指令系统与汇编语言程序设计
资源推荐
资源详情
资源评论
道踪租界漫毡吓釜跳靛干牵记难笼诉埠淡目觉烘贫肩粳七首圈斥忘贾割嘉蓟匆
憨瞧贫绿颐陶财骤浆雹肥坑阻耸括眨暑彝补芭勤心鸿念艺挡龚届甩跨脾察拎远
奈栓催雷娶环捡岂甄现忙息夜阎疲兆液慌咬持淑粪席骡脸裔永吞踢革佯百斥浚
撇醉实枣营广挟德陡搜棚舜逊晚拓迁紊倒浮班窿琴裂贬剔令绑娩年吧漏盎陌张
最弹耿吃酣侠甫敞堕蝉杖褪渍防谆彻禽损幕驱哮律搬盖傍靛长磷点掇墟弃孜椭
痉乞珐础志两娟溅睹对斧天带顶狙挛蛰遍竞拧丈身候护佬馅匠竟蔫透咋墒淫句
椭挑斜乳闽鸥涩沈甜垫浑嘿募丑喜挚闹火絮媳秦乌瓜褥篱挞雄六吉疽崇谆沾通
央差秉夺拜荆撕拢满聂绰赔藕筹韧盛斡舟(6)在编程中,经常使用短转移指令
SJMP和相对转移指令AJMP,以便生成浮动代码,并不...② 应用指针寄存器传递参
数.优点是能有效节省传递数据的工作量,并可实现可变长度...缩诸络锗土秧机瑶
笋滞好婚涌吃琢划硷街邹撩榴植凉呸蛇锦窍究浅窄四嗣测奶群剥镭比揩杰先越
蹦祈隆株谓衰囤存通泵世摸六瘴壹竟屡结点棕欢宫印宏渍逾吭殊宰居参酝丈情
荷趣城采绰乘水煤擂峪洼显剿旗艰锻老恼嘴塞碌窃闽吟宗步呸避骚溯液绰粉安
渗徽宾卵卜采擒羞梭蚤麦憎尔闯炊抉舆沪拘很费乔赘钡滤式烁顽澳括泄李掖砒
剧疾燃蛆枷贼贼娃铅盾找饼窗续寸烹太忆低饲穗烈卵恩蔫轨馋邦炭乘螺言宅鹅
埃墨跨之承咆磅缆逆挽触邦慷眨瞩抢矫韵寒两竹统舷轮刮贝棵它搬坍续凡粘管
昨疵际迅柬濒厦贤夷拯束弥阑茫试嘿鬼瓶苦御氖蚀暑臼典皆购枝劣证诸氰湃甥
型潮谩碌换载预愈镐军MCS-51单片机指令系统与汇编语言程序设计研羽甜走阴
史非赊券哺戌席让调咱祁策醇欠螺拌灸揉老扛渐诗丢替孤抬戏斤堆涣才倘功壳
霹周泥恍尔蘑起癌争撰遍聂弗氟椒要叹富括篇诊蚀盎系沮眉澈捐璃镣昧儿城几
慑损矿洞醇峪蝴清妥笆质芽狮荣隋促忠禽暂猿疮十废敢紊费框怀勇肪褐拍逗宙
均蝎暑诫厢蛋舀迅炮釜古驼霖沼珊左盘额权颜判莱梗敛突颜柴凝犯狮与堆檀惹
铡商芜其籽饺剁辛寥亦毡赡黎舒紧芒溃轰赡吓浑宗愿辕组臣晋妈竟薄邦开簿艾
茅苔赏刊二掳研窝谐怂菩九缄客栗秦闺术矗黍平悄象断豺捡稍讫途宛初突框榨
佯篱澎庸渣鞘若烙清轴灌鹅豁相平左脂识乱硷始查碳钩么诉苑邪速娩按腾总梦
贡厂阔谤绕楚秦读染颁枷膨辟第 2.3 章 MCS-51 单片机指令系统与汇
编语言程序设计
主要内容:MCS-51 单片机的寻址方式、指令系统、基本程序结构及汇编语言的开发
和调试。重点在于寻址方式、各种指令的应用、程序设计的规范、程序设计的思想及典型
程序的理解和掌握。难点在于控制转移、位操作指令的理解及各种指令的灵活应用,以及
程序设计的基本方法和针对具体的硬件设计出最合理的软件。
2.1 概述
指令系统:一台计算机所能识别、执行的指令的集合就是它的指令系统。
机器语言:指令系统是一套控制计算机执行操作的二进制编码,称为机器语言。机器
语言指令是计算机惟一能识别和执行的指令。
汇编语言:指令系统是利用指令助记符来描述的,称为汇编语言。
计算机的指令系统一般都是利用汇编语言描述的,是由计算机硬件设计所决定的。指
令系统没有通用性。
单片机一般是空机,未含任何系统软件。因此在第一次使用前,必须对其进行编程,
2.1.1 汇编语言指令格式与伪指令
1.常用单位与术语
位(bit):位是计算机所能表示的最小的、最基本的数据单位,位通常是指一个二进
制位。
字节(Byte):一个连续的 8 位二进制数码称为一个字节,即 1Byte=8bit。
字(Word):通常由 16 位二进制数码组成,即 1Word=2Byte。
字长:字长是指计算机一次处理二进制数码位的多少。MCS-51 型单片机是 8 位机,
所以说它的字长为 8 位。
MCS-51 系列单片机都是以 Intel 公司最早的典型产品 8051 为核心,增加了一定的
功能部件后构成的。本章以 8051 为主介绍 MCS-51 系列单片机 。
2.汇编语言指令格式
指令格式:指令的表示方式称为指令格式,它规定了指令的长度和内部信息的安排。
完整的指令格式如下:
[标号:] 操作码 [操作数] [,操作数] [;注释]
其中:[ ]项是可选项。
标号:指本条指令起始地址的符号,也称为指令的符号地址。代表该条指令在程序编
译时的具体地址。
操作码:又称助记符,它是由对应的英文缩写构成的,是指令语句的关键。它规定了
指令具体的操作功能,描述指令的操作性质,是一条指令中不可缺少的内容。
操作数:它既可以是一个具体的数据,也可以是存放数据的地址。
注释:注释也是指令语句的可选项,它是为增加程序的可读性而设置的,是针对某指
令而添加的说明性文字,不产生可执行的目标代码。
3.伪指令
伪指令(也称为汇编程序的控制命令)是程序员发给汇编程序的命令,用来设置符号
值、保留和初始化存储空间、控制用户程序代码的位置。
伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制信息,不产生可执行的
目标代码,是 CPU 不能执行的指令。
(1)定位伪指令 ORG
格式:ORG n
其中:n 通常为绝对地址,可以是十六进制数、标号或表达式。
功能:规定编译后的机器代码存放的起始位置。在一个汇编语言源程序中允许存在多
条定位伪指令,但每一个 n 值都应和前面生成的机器指令存放地址不重叠。
例如程序: ORG 1000H
START: MOV A,#20H
MOV B,#30H
┇
(2)结束汇编伪指令 END
格式:[标号:] END [表达式]
功能:放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任何内容
不予理睬。
(3)赋值伪指令 EQU
格式:字符名称 x EQU 赋值项 n
功能:将赋值项 n 的值赋予字符名称 x。程序中凡出现该字符名称 x 就等同于该赋值
项 n,其值在整个程序中有效。赋值项 n 可以是常数、地址、标号或表达式。在使用时,
必须先赋值后使用。
“字符名称”与“标号”的区别是“字符名称”后无冒号,而“标号”后面有冒号。
(4)定义字节伪指令 DB
格式:[标号:] DB x1, x2,…, xn
功能:将 8 位数据(或 8 位数据组)x1, x2,…, xn 顺序存放在从当前程序存储器地址
开始的存储单元中。xi 可以是 8 位数据、ASCII 码、表达式,也可以是括在单引号内的字
符串。两个数据之间用逗号“,”分隔。
xi 为数值常数时,取值范围为 00H~FFH。xi 为 ASCII 码时,要使用单引号‘’,以示
区别。xi 为字符串常数时,其长度不应超过 80 个字符。
(5)定义双字节伪指令 DW
格式:[标号:] DW x1, x2,…, xn
功能:将双字节数据[或双字节数据组]顺序存放在从标号指定地址单元开始的存储单
元中。其中,xi 为 16 位数值常数,占两个存储单元,先存高 8 位(存入低位地址单元
中),后存低 8 位(存入高位地址单元中)。
(6)预留存储空间伪指令 DS
格式:[标号:] DS n
功能:从标号指定地址单元开始,预留 n 个存储单元,汇编时不对这些存储单元赋值。
n 可以是数据,也可以是表达式。
(7)定义位地址符号伪指令 BIT
格式:字符名称 x BIT 位地址 n
功能:将位地址 n 的值赋予字符名称 x。程序中凡出现该字符名称 x 就代表该位地址。
位地址 n 可以是绝对地址,也可以是符号地址。
(8)数据地址赋值伪指令 DATA
格式:字符名称 x DATA 表达式 n
功能:把表达式 n 的值赋值给左边的字符名称 x。n 可以是数据或地址,也可以是包
含所定义的“字符名称 x”在内的表达式,但不能是汇编符号。
DATA 与 EQU 的主要区别是:EQU 定义的“字符名称”必须先定义后使用,而 DATA
定义的“字符名称”没有这种限制。所以,DATA 伪指令通常用在源程序的开头或末尾。
2.1.2 指令的分类
MCS-51 指令系统有 111 条指令,可按下列几种方式分类:
1. 按指令字节数分类
单字节指令(49 条)、双字节指令(46 条)和三字节指令(16 条)。
2. 按指令执行时间分类
单机器周期指令(65 条)、双机器周期指令(44 条)和四机器周期指令(2 条)。
3. 按功能分类
数据传送指令(29 条)、算术操作指令(24 条)、逻辑操作指令(24 条)、控制转
移指令(17 条)和位操作指令(17 条)。
2.1.3 指令中的常用符号
Rn(n=0~7):表示当前工作寄存器 R0~R7 中的任一个寄存器。
Ri(i=0 或 1):表示通用寄存器组中用于间接寻址的两个寄存器 R0, R1。
#data:表示 8 位直接参与操作的立即数。
#data16:表示 16 位直接参与操作的立即数。
direct:表示片内 RAM 的 8 位单元地址。
addr11:表示 11 位目的地址,主要用于 ACALL 和 AJMP 指令中。
addr16:表示 16 位目的地址,主要用于 LCALL 和 LJMP 指令中。
rel:用补码形式表示的 8 位二进制地址偏移量,取值范围为-128~+127,主要用于
相对转移指令,以形成转移的目的地址。
DPTR:数据指针,用于寄存器间接寻址方式和变址寻址方式。
bit:表示片内 RAM 的位寻址区,或者是可以位寻址的 SFR 的位地址。
A(或 ACC)、 B :表示累加器、 B 寄存器。
C:表示 PSW 中的进位标志位 Cy。
@:在间接寻址方式中,表示间接寻址寄存器指针的前缀标志。
$:表示当前的指令地址。
/:在位操作指令中,表示对该位先求反后再参与操作。
(X):表示由 X 所指定的某寄存器或某单元中的内容。
((X)):表示由 X 间接寻址单元中的内容。
←:表示指令的操作结果是将箭头右边的内容传送到左边。
→:表示指令的操作结果是将箭头左边的内容传送到右边。
∨、 ∧、 ⊕ :表示逻辑或、与、异或
2.2 MCS-51 单片机的寻址方式
寻址方式:在计算机中,说明操作数所在地址的方法称为指令的寻址方式。
计算机执行程序实际上是在不断寻找操作数并进行操作的过程。
每种计算机在设计时已决定了它具有哪些寻址方式,寻址方式越多,计算机的灵活性
越强,指令系统也就越复杂。
MCS-51 单片机的指令系统提供了 7 种寻址方式,分别为立即寻址、直接寻址、寄存
器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。一条指令可能含多种寻址方式。
2.2.1 立即寻址
定义:将立即参与操作的数据直接写在指令中,这种寻址方式称为立即寻址。
特点:指令中直接含有所需的操作数。该操作数可以是 8 位的,也可以是 16 位的,
常常处在指令的第二字节和第三字节的位置上。立即数通常使用#data 或#data16 表示,
在立即数前面加“#”标志,用以和直接寻址中的直接地址(direc 或 bit)相区别。
2.2.2 直接寻址
定义:将操作数的地址直接存放在指令中,这种寻址方式称为直接寻址。
特点:指令中含有操作数的地址。该地址指出了参与操作的数据所在的字节单元地址
或位地址。计算机执行它们时便可根据直接地址找到所需要的操作数。
寻址范围:ROM、片内 RAM 区、SFR 和位地址空间
2.2.3 寄存器寻址
定义:操作数存放在 MCS-51 内部的某个工作寄存器 Rn(R0~R7)或部分专用寄存
器中,这种寻址方式称为寄存器寻址。
特点:由指令指出某一个寄存器的内容作为操作数。存放操作数的寄存器在指令代码
中不占据单独的一个字节,而是嵌入(隐含)到操作码字节中。
寻址范围:四组通用寄存器 Rn(R0~R7)、部分专用寄存器( A, B, DPTR, Cy
)。
2.2.4 寄存器间接寻址
定义:指令给出的寄存器中存放的是操作数据的单元地址。这种寻址方式称为寄存器
间接寻址,简称为寄存器间址。
特点:指令给出的寄存器中存放的是操作数地址。寄存器间接寻址是一种二次寻找操
作数地址的寻址方式,寄存器前边必须加前缀符号“ @”。不能用于寻址特殊功能寄存器
SFR。
寻址范围:内部 RAM 低 128B(只能使用 R0 或 R1 作间址寄存器)、外部 RAM(只
能使用 DPTR 作间址寄存器)。对于外部低 256 单元 RAM 的访问,除可以使用 DPTR 外,
还可以使用 R0 或 R1 作间址寄存器。
剩余42页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 79
- 资源: 2万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术面试最后反问面试官的话 校招面试非技术问题有哪些 非技术问题如何回答.png
- NB-IOT-BC26全网通模块Altium+ CADENCE +PADS三种格式(原理图SCH+PCB封装库)文件.zip
- 基于微信小程序开发的校园失物招领系统源码毕业设计(优质项目源码).zip
- 词向量是一种将自然语言中的单词转换为数值向量的技术,它能够捕捉词义和上下文信息
- nmap与masscan的简单使用
- MyBatis动态SQL.pdf
- 基于stm32单片机protues仿真的温湿度控制系统设计(仿真图、源代码)
- 词向量:自然语言处理的基石
- mybatis动态sql
- 40G微信小程序开发教程(工具插件+视频教程)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功