第三章1(寻址方式)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一节 MCS-51指令系统的简介 指令系统的简介
MCS-51共有 共有111条指令,指令的长 条指令, 共有 条指令 度和执行时间因不同的指令而各不相同。 度和执行时间因不同的指令而各不相同。
授课内容: 授课内容:
1、指令表示形式 、 2、指令格式 、 3、指令字节数 、
教学要求: 教学要求 熟练掌握: 熟练掌握: 指令格式 了解: 了解: 指令的表示形式; 指令的表示形式; 指令的字节数; 指令的字节数; 指令分类
《单片机原理与应用技术》教学课件
一、立即寻址
指令本身直接含有所需要的8位或 位的操作数 指令本身直接含有所需要的 位或16位的操作数。 位或 位的操作数。 将此数称为“立即数” 使用 标明)。如 标明)。 将此数称为“立即数”(使用#标明)。如: MOV A, #30H ;将(8位)立即数送累加器 位 立即数送累加器A MOV DPTR, #2000H ;16位立即数送 位立即数送DPTR积存器 位立即数送 积存器
3、累加器有A、ACC和E0H三种形式,分 、累加器有 、 三种形式, 和 三种形式 属于两种寻址方式, 属于两种寻址方式,但执行效果相同 如: INC A(04H,寄存器寻址 ,寄存器寻址) INC ACC INC 0E0H 直接寻址, 直接寻址,05E0H
4、在指令系统中:字节地址与位地址是完全 、在指令系统中:字节地址与位地址是完全 不同的概念。 不同的概念。 表示, 前者用direct表示,而后者用 表示,但在 前者用 表示 而后者用bit 表示, 指令中都是用16进制表示的数 进制表示的数。 指令中都是用 进制表示的数。 如: MOV A, 20H ;将RAM的20H单元内容送 单元内容送A 的 单元内容送 MOV C, 20H ;将位寻址区中的位地址为 20H 位内容送 位内容送PSW 中的 中。 中的Cy中
三字节指令在存储器中存放的方式示意图
MOV DPTR, #data16
OP
direct MOV direct, #data
data0
OP data
rel
CJNE A,#data,rel
指令的字节数与指令的运行时间
指令的字节多是否意味着指令周期就长? 指令的字节多是否意味着指令周期就长? 指 令
字节数 周期数
第三章 MCS-51单片机指令系统及编 程举例
《单片机原理与应用技术》教学课件
教学内容: 教学内容: 3.1 简介 3.2 寻址方式 3.3 指令系统及应用举例 3.4 伪指令 3.5 综合程序举例
熟练掌握: 熟练掌握: (1)指令的书写格式 )指令的书写格式; (2)数据传送类指令、算术运算类指令、 )数据传送类指令、算术运算类指令、 逻辑操作指令、 逻辑操作指令、控制转移类指令和位操作 类指令的功能 寻址方式、指令代码、 的功能、 类指令的功能、寻址方式、指令代码、对 标志位的影响及其使用。 标志位的影响及其使用。 (3)汇编程序设计方法 。 ) (4)通用子程序的特点和设计技巧。 )通用子程序的特点和设计技巧。
第二节 MCS-51的寻址方式 的寻址方式
寻址方式——指令中所规定的寻找操 指令中所规定的寻找操 寻址方式 作数的方式。 寻找(或确定) 作数的方式。 即:寻找(或确定)操 作数所在单元地址的方式。 所在单元地址 作数所在单元地址的方式。 寻址方式越多,计算机寻址能力越强, 寻址方式越多,计算机寻址能力越强, 但指令系统也越复杂。 但指令系统也越复杂。 正确的理解、掌握寻址方式,是学习、 正确的理解、掌握寻址方式,是学习、 使用指令的关键。
一、指令的表示形式
指令的表示形式是识别指令的标志。 指令的表示形式是识别指令的标志。 1、表示形式有两种:机器语言和汇编语言 表示形式有两种:机器语言和汇编语言 助记符”方式) (也称 “助记符”方式) 00100100B 00001000B ADD A,#08H
二进制表示形式 汇编格式
机器语言的缺点:不便于阅读、 机器语言的缺点:不便于阅读、记忆和调试 缺点 修改。 修改。 汇编语言便于阅读 书写和交流, 便于阅读、 汇编语言便于阅读、书写和交流,但必须把 翻译” 机器码” 它“翻译”为二进制形式 “机器码”后才能 CPU所识别和执行 所识别和执行。 为CPU所识别和执行。
1、单字节指令(49条): 单字节指令(49条 (49
(1)无操作数(操作码包含操作数信息) )无操作数(操作码包含操作数信息) 1010 0011B 如 :INC DPTR INC A 0000 0100B 特点】 操作数隐含在操作码中。 【特点】:操作数隐含在操作码中。 (2)操作数在工作寄存器中 ) 11101000B 如:MOV A,R0 , MOV A,R1 11101001B , 特点】 【特点】:寄存器名以三位数代码的形式在指 令的后三位。 令的后三位。
指令说明
R0内容送累加器 内容送累加器A 内容送累加器 立即数FFH送A 送 立即数 立即数30H送内存 送内存20h单元 立即数 送内存 单元 乘法指令 16位寄存器 位寄存器DPTR加一 位寄存器 加一
MOV A,R0 , MOV A,#0FFH , MOV 20H,#30H , MUL AB INC DPTR
2、当直接地址在工作寄存器区中时,可以使 、当直接地址在工作寄存器区中时, 工作寄存器区中时 用两种寻址方式来访问。 用两种寻址方式来访问。 如: MOV A, 00H(E500H) ;将RAM中00H单元数据 将 中 单元数据 送A MOV A, R0 (E8H) ;将工作寄存器 的内容 将工作寄存器R0的内容 将工作寄存器 的内容A 其指令的结构不相同,执行时间相同 其指令的结构不相同 执行时间相同 指令执行结果是一样的! 指令执行结果是一样的!
三、寄存器寻址
操作数在寄存器中 操作数在寄存器中,如R0-R7,A、B、Cy 寄存器 , 、 、 )、DPTR (位)、 例: ADD A, R3 ; MOV 30H,R0 ;30H←(R0) , ( ) MOV A,R1 ; A ←(R1) , ( )
四、 寄存器间接寻址
寄存器中的内容是一个地址, 寄存器中的内容是一个地址,该地址 内容是一个地址 单元的内容是所需的操作数 操作数。 单元的内容是所需的操作数。操作数是 通过寄存器间接得到的。 通过寄存器间接得到的。
《单片机原理与应用技术》教学课件
合法标号: 合法标号:
ABC: aBC: D123: @ABC: _ABC:
不合法标号: 不合法标号:
5BC: -aBC: 、D123:
ASM-51指令的格式 ASM-51指令的格式
如: LOOP:MOV : A, , 30H ;将30H的内容送 将 的内容送A 的内容送 [注释] 注释]
【注意】:MOV A, #30H MOV A, 30H 两者的区别。 立即数寻址的指令长度为2或 个字节 个字节。 立即数寻址的指令长度为 或3个字节。
二、直接寻址
指令本身含有操作数的8位或 位地址 指令本身含有操作数的 位或16位地址。即指 位或 位地址。 直接给出了操作数的地址。 令直接给出了操作数的地址。如: MOV A, 30H ;将RAM 30H单元内容送累加器 ;将 30H单元内容送累加器 这里30H是操作数在 是操作数在RAM中的地址。 中的地址。 这里 是操作数在 中的地址 很明显,直接寻址的指令长度是 或 个字节 个字节。 很明显,直接寻址的指令长度是2或3个字节。
数字、 、 组成 必须用英语字母 组成, 英语字母、 或 母 、数字 、_、@组成, 必须用英语字母、 _或@ 开始, 结尾。 开始,“:”结尾。 结尾 ♦ 操作码就是指令功能助记符,指令实体 操作码就是指令功能助记符 就是指令功能助记符, ♦ 操作码与操作数之间必须用空格分隔,操作数与 操作码与操作数之间必须用空格分隔 必须用空格分隔, 必须用逗号“ 操作数之间必须用逗号 英文格式, 操作数之间必须用逗号“,”(英文格式,半角) ♦ 注释,以“;”开头 注释, 开头
直接寻址示意图
累加器A 程序 ROM n n+1 OP 30H
XXH
30Hห้องสมุดไป่ตู้
数据RAM 数据 操作数
XXH
如:MOV A, 30H 注意:操作数是内部RAM或SFR区 注意:操作数是内部 是内部 或 区
使用直接寻址应注意的四个问题: 使用直接寻址应注意的四个问题: 1、 当地址恰好在 、 当地址恰好在SFR区域时 指令也可以用寄 区域时, 区域时 存器名来表示。 存器名来表示。 如:MOV A, 81H 可以写成 MOV A, SP 机器码: 后者更容易阅读和交流, 机器码:E581后者更容易阅读和交流,提倡 后者更容易阅读和交流 使用SFR中寄存器名称来代替直接地址。 中寄存器名称来代替直接地址。 使用 中寄存器名称来代替直接地址 串口数据缓冲器数据送A 如:MOV A, SBUF ;串口数据缓冲器数据送 串口数据缓冲器数据送 MOV IE, #00H ;初始化中断允许寄存器 初始化中断允许寄存器
单片机中, 在MCS-51单片机中,共使用了七种寻址方式, 单片机中 共使用了七种寻址方式, 一条指令可能含多种寻址方式
♦ 立即寻址 ♦ 直接寻址 ♦ 寄存器寻址 ♦ 寄存器间接寻址 ♦ 变址寻址(基址寄存器+变址寄存器间接寻址) 变址寻址(基址寄存器+变址寄存器间接寻址) ♦ 相对寻址 ♦ 位寻址
二、指令格式
标号: 操作数][ 操作数][ 操作数][ 注释] ][,操作数][, ][; [标号:]操作码 [操作数][ 操作数][,操作数][;注释]
♦ 方括符 ]表示可选项 方括符[ 表示可选项 ♦ 标号代表程序起始地址或转移的目标地址。由字 标号代表程序起始地址或转移的目标地址 代表程序起始地址或转移的目标地址。
2、双字节指令(46条): 双字节指令(46条 指令的操作码和操作数各占一个字节。 指令的操作码和操作数各占一个字节。 如: MOV A, #data 01110100B data 很明显: 位的操作数本身占据一个字节 位的操作数本身占据一个字节。 很明显:8位的操作数本身占据一个字节。 程序存储器 01110100 data
0060H 0061H
mov a, #data
双字节指令在程序存储器的存放示意图
3、三字节指令(16条): 三字节指令(16条 指令中的操作数为双字节。如: 指令中的操作数为双字节。 MOV DPTR, #data16 10010000B, data15-8, data7-0 10010000 data15-8 data8-0
1 2 3 1 1
1 1 2 4 1
四、 指令的分类
每条指令在执行时要花去一定的时间, 每条指令在执行时要花去一定的时间,以机器周期 时间 为单位。 分类: 为单位。按指令执行时间分类: 单周期(64条);双周期(45条);4周期(2 双周期(45 (2条 单周期(64条);双周期(45条);4周期(2条) (64 每条指令在程序存储器ROM中占据一定的空间, 每条指令在程序存储器ROM中占据一定的空间,以字 ROM中占据一定的空间 节为单位。 分类: 节为单位。按指令所占字节数分类: 单字节(49条);双字节(46条);3字节(16 双字节(46 (16条 单字节(49条);双字节(46条);3字节(16条) (49 按指令的功能分类,可分为5大类: 按指令的功能分类,可分为5大类: 功能分类 数据传送类(29条);算术运算类(24条) 数据传送类(29条);算术运算类(24条 算术运算类 逻辑运算及移位类(24);控制转移类(17条 逻辑运算及移位类(24);控制转移类(17条) );控制转移类 位操作类(17条 位操作类(17条)
[标号] 操作码 标号]
第一操作数 目的操作数) (目的操作数)
第二操作数 源操作数) (源操作数)
注:白色的内容不是必须的
三、指令的字节数
在MCS-51单片机的指令系统中,因 单片机的指令系统中, 单片机的指令系统中 指令操作码和操作数的不同,指令 指令操作码和操作数的不同, 在存储器中)长度也各不相同 也各不相同。 (在存储器中)长度也各不相同。 分为单字节、双字节和三字节。 分为单字节、双字节和三字节。 单字节
相关文档
最新文档