第三章MCS-51指令系统及汇编语言程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指 令 系 统 的 寻 址 方 式
MCS-51指令系统及一般说明 MCS-51指令系统及一般说明
在介绍指令之前, 在介绍指令之前 , 先对指令中使用的一些符号意义进行简单 的说明。 的说明。 direct---直接地址, ---直接地址 ① direct---直接地址,即8位的内部数据存储器单元或特殊 功能寄存器的地址。 功能寄存器的地址。 #data--包含在指令中的8位常数。 --包含在指令中的 ② #data--包含在指令中的8位常数。 #datal6--包含在指令中的16位常数 包含在指令中的16位常数。 ③ #datal6--包含在指令中的16位常数。 rel-- 位的带符号的偏移量。用于SJMP --8 SJMP及所有的条件转移 ④ rel--8位的带符号的偏移量。用于SJMP及所有的条件转移 指令中。 指令中 。 偏移量按相对于下一条指令的第一个字节地址与跳转 后指令第一个字节地址之差计算, 范围内取值。 后指令第一个字节地址之差计算,在-128~+127范围内取值。 128 +127范围内取值 DPTR--数据指针,可用作16位的地址寄存器。 --数据指针 16位的地址寄存器 ⑤ DPTR--数据指针,可用作16位的地址寄存器。
指 令 系 统 的 寻 址 方 式
寄存器间接寻址
寄存器间接寻址方式可用于访问内部RAM 或外部数据存储器 寄存器间接寻址方式可用于访问内部 RAM或外部数据存储器 。 RAM 或外部数据存储器。 这种寻址方式是由指令指定某一寄存器的内容作为操作数的 地址。 地址。 其中(Ri)=40H (Ri)=40 例如 MOV A,@Ri ;(i=0或1),其中(Ri)=40H 这条指令表示从Ri中找到源操作数所在单元的地址, Ri中找到源操作数所在单元的地址 这条指令表示从Ri中找到源操作数所在单元的地址,把该地 址中的内容传送给A 即把内部RAM 40H单元的内容送到累加器A RAM中 址中的内容传送给A。即把内部RAM中40H单元的内容送到累加器A 中。
指 令 系 统 及 一 般 说 明
bit--内部RAM或特殊功能寄存器中的直接寻址位。 --内部RAM或特殊功能寄存器中的直接寻址位 ⑥ bit--内部RAM或特殊功能寄存器中的直接寻址位。 Cy--进位标志或进位位,或位处理机中的累加器。 --进位标志或进位位 ⑦ Cy--进位标志或进位位,或位处理机中的累加器。 --间址寄存器或基址寄存器的前缀 间址寄存器或基址寄存器的前缀。 @Ri,@A十 ⑧ @--间址寄存器或基址寄存器的前缀。如@Ri,@A十DPTR (X)---X ⑨ (X)--X中的内容 ((X))---由 ⑩ ((X))--由X寻址的单元中的内容
指 令 系 统 的 寻 址 方 式
指 令 系 统 的 寻 址 方 式
寄存器寻址
寄存器寻址方式可用于访问选定寄存器区的8 寄存器寻址方式可用于访问选定寄存器区的8个工作寄存器 由指令操作码的低3位指示所用的寄存器,寄存器A R0~R7。由指令操作码的低3位指示所用的寄存器,寄存器A、B、 R DPTR和 DPTR和C位(位处理机的累加器)也可作为寻址的对象。 位处理机的累加器)也可作为寻址的对象。
5 1 指 令 系 统 简 介
MCS-51指令系统的寻址方式 MCS-51指令系统的寻址方式
所谓寻址方式是指CPU用何种方式寻找参与运算的操作数或操 所谓寻址方式是指CPU用何种方式寻找参与运算的操作数或操 CPU 作数地址的方法。 作数地址的方法。 MCS-51采用了7 MCS-51采用了7种寻址方式 采用了 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 基址寄存器加变址寄存器间址寻址 相对寻址 位寻址
指 令 系 统 的 寻 址 方 式
基址寄存器加变址寄存器间址寻址
这种寻址方式用于访问程序存储器的一个单元, 这种寻址方式用于访问程序存储器的一个单元,该单元的地 址是基址寄存器(DPTR PC)的内容与变址寄存器 的内容之和。 (DPTR或 的内容与变址寄存器A 址是基址寄存器(DPTR或PC)的内容与变址寄存器A的内容之和。 例如 A, MOVC A,@A+DPTR 其中A的原有内容为05H DPTR的内容为4000H, 05H, 的内容为4000H 其中A的原有内容为05H,DPTR的内容为4000H,该指令执行 的结果是把程序存储器4005H单元的内容传送给累加器A 4005H单元的内容传送给累加器 的结果是把程序存储器4005H单元的内容传送给累加器A。
教 学 目 的 和 要 求
MCS-51指令系统简介 MCS-51指令系统简介
MCS-51的基本指令共111条 其中单字节指令49条双字节指 MCS-51的基本指令共111条,其中单字节指令49条双字节指 的基本指令共111 49 令45条,三字节指令17条。 45条 三字节指令17条 17 从指令的执行时间来看,单机器周期(12个时钟振荡周期) 从指令的执行时间来看,单机器周期(12个时钟振荡周期)指 (12个时钟振荡周期 令64条,双机器周期(24个时钟振荡周期)指令45条,只有乘、除 64条 双机器周期(24个时钟振荡周期)指令45条 只有乘、 (24个时钟振荡周期 45 两条指令的执行时间为4个机器周期(48个时钟振荡周期) 两条指令的执行时间为4个机器周期(48个时钟振荡周期)。 (48个时钟振荡周期 MCS-51的指令系统按指令功能划分可分为五大类: MCS-51的指令系统按指令功能划分可分为五大类: 的指令系统按指令功能划分可分为五大类 ① 数据传送类 ② 算术运算类 ③ 逻辑运算类 ④ 控制转移类 ⑤ 位操作类
指 令 系 统 的 寻 址 方 式
位寻址
位寻址是指对片内RAM的位寻址区(20H 2FH 2FH) 位寻址是指对片内RAM的位寻址区(20H~2FH)和可以位寻 RAM的位寻址区 址的专用寄存器进行位操作时的寻址方式。 址的专用寄存器进行位操作时的寻址方式。 这种寻址方式在进行位操作时,借助于进位C 这种寻址方式在进行位操作时,借助于进位C作为操作的位 累加器,操作数直接给出该位的地址, 累加器,操作数直接给出该位的地址,然后根据操作码的性质 对其进行位操作。 对其进行位操作。 例如 C, MOV C,24H.0 该指令是把24H字节中的第0位传送给C 24H字节中的第 该指令是把24H字节中的第0位传送给C。
立即寻址
采用立即寻址方式的指令是双字节的。第一个字节是操作码, 采用立即寻址方式的指令是双字节的。第一个字节是操作码, 第二字节就是操作数。因此,操作数就是存放在程序存储器内的 第二字节就是操作数。因此, 常数。 常数。
指 令 系 统 的 寻 址 方 式
例如
MOV A,#5AH 表示把立即数5AH(应冠以前缀 应冠以前缀# 以便与地址相区别) 表示把立即数5AH(应冠以前缀#号,以便与地址相区别) 送给累加器A 5AH这个常数是指令代码的一部分 这个常数是指令代码的一部分。 送给累加器A。5AH这个常数是指令代码的一部分。
指 令 系 统 的 寻 址 方 式
相对寻址
相对寻址用于访问程序存储器,出现在相对转移指令中。 相对寻址用于访问程序存储器,出现在相对转移指令中。 相对寻址是将程序计数器PC PC中的当前值与指令第二字节所 相对寻址是将程序计数器 PC 中的当前值与指令第二字节所 给出的数据(该数据也称为偏移量)相加, 给出的数据 ( 该数据也称为偏移量 ) 相加 , 其和为跳转指令的 转移地址。转移地址也称为转移目的地址。 转移地址 。 转移地址也称为转移目的地址 。 偏移量是一有符号 其取值范围为-128~+127。 数,其取值范围为-128 +127。 20H 例如 SJMP 20H 指令代码为80 80H 20H 两个字节。 指令代码为 80H 、 20H 两个字节 。 假设当前的值为指令所在 2100+ PC=2102 2102H 则程序将转移到2122 地址去执行。 2122H 地址 2100+2 即PC=2102H,则程序将转移到2122H地址去执行。
11 12 13
addr11 低11位目标地址。 addr11 11位目标地址。 位目标地址 addr16 16位目标地址 位目标地址。 addr16 16位目标地址。 $ 当前指令地址。 当前指令地址。
指 令 系 统 及 一 般 说 明
数据传送类指令
数据传送类指令是把源操作数传送到目的操作数。 数据传送类指令是把源操作数传送到目的操作数。 数据传送类指令不影响标志,这里所说的标志是指Cy Cy、 数据传送类指令不影响标志 , 这里所说的标志是指 Cy 、 Ac OV,但不包括检验累加器奇偶性的标志位P 和OV,但不包括检验累加器奇偶性的标志位P。 1.内部数据传送指令 指令格式 目的操作数> 源操作数> MOV <目的操作数> , <源操作数>
指令的源操作数和目的操作数都在单片机内部。他们既可 指令的源操作数和目的操作数都在单片机内部 。 以是片内RAM地址,也可以是特殊功能寄存器SFR的地址。 RAM地址 SFR的地址 以是片内 RAM 地址 , 也可以是特殊功能寄存器 SFR 的地址 。 当然 源操作数也可以是立即数。 源操作数也可以是立即数。 (1)以累加器为目的操作数的指令 这组指令的功能是把源操作数的内容送入累加器A 这组指令的功能是把源操作数的内容送入累加器A,源操作 数有寄存器寻址,直接寻址,间接寻址和立即寻址等方式。 数有寄存器寻址,直接寻址,间接寻址和立即寻址等方式。
指 令 系 统 的 寻 址 方 式
机器码为EFH 例如 MOV A,R7 ;机器码为EFH 该指令功能是把寄存器R 的内容送给累加器A 该指令功能是把寄存器R7的内容送给累加器A。
指 令 系 统 的 寻 址 方 式
直接寻址
直接寻址是访问特殊功能寄存器的唯一方法。 直接寻址是访问特殊功能寄存器的唯一方法。它也用于访问 内部RAM( 128个字节 RAM(低 个字节) 内部RAM(低128个字节)。 采用直接寻址方式的指令是双字节指令,其中第一个字节是 采用直接寻址方式的指令是双字节指令, 操作码,第二个字节是内部RAM或特殊功能寄存器的直接地址。 操作码,第二个字节是内部RAM或特殊功能寄存器的直接地址。 RAM或特殊功能寄存器的直接地址 例如 A, MOV A,3FH 表示把内部RAM 3FH单元的内容传送给 单元的内容传送给A 表示把内部RAM 3FH单元的内容问外部数据存储器,还可用数据指针DPTR作为间址寄存 访问外部数据存储器,还可用数据指针DPTR作为间址寄存 DPTR DPTR是16位寄存器 故它可对整个外部数据存储器空间(64K) 位寄存器, 器,DPTR是16位寄存器,故它可对整个外部数据存储器空间(64K) 寻址。 寻址。 A, MOVX A,@DPTR 把数据指针DPTR DPTR所指的某一外部存储单元的内容送给累加 把数据指针DPTR所指的某一外部存储单元的内容送给累加 器A 。 例如
MCS-51指令系统简介 3.1 MCS-51指令系统简介 MCS-51指令系统的寻址方式 3.2 MCS-51指令系统的寻址方式 MCS-51指令系统及一般说明 3.3 MCS-51指令系统及一般说明 3.4 汇编语言程序设计
教学目的和要求
本章主要介绍MCS-51系列单片机的寻址方式指 本章主要介绍MCS-51系列单片机的寻址方式指 MCS 令系统及汇编语言程序设计。 令系统及汇编语言程序设计。寻址方式和指令系统 是学习和使用单片机的基础和工具, 是学习和使用单片机的基础和工具,是必须掌握的 重要内容。 重要内容。
在这种寻址方式中,被寻址寄存器中的内容就是操作数。 在这种寻址方式中,被寻址寄存器中的内容就是操作数。
例如
Rn(n= MOV A,Rn(n=0~7) )
表示把寄存器Rn的内容传送给累加器 表示把寄存器Rn的内容传送给累加器A,其中源操作数就是 Rn的内容传送给累加器A Rn的内容。 Rn的内容。 的内容