mcs-51单片机指令系统_第1页
mcs-51单片机指令系统_第2页
mcs-51单片机指令系统_第3页
mcs-51单片机指令系统_第4页
mcs-51单片机指令系统_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统教学基本要求 : ( 1)、了解单片机的指令系统、编程语言等基本概念;( 2)、熟悉单片机汇编语言指令 格式中符号的意义 ;( 3)、熟悉单片机汇编语言指令系统每条指令的功能;( 4)、掌握单片机指令系统的 7种寻址方式;( 5)、掌握单片机指令系统每类指令的用法。教学重点 :( 1)、单片机指令系统的寻址方式;( 2)、片内、外 RAM单元之间的数据传送;( 3)、加法运算指令组的用法;( 4)、逻辑运算指令组的用法;( 5)、控制转移指令组的用法。MCS-51单片机指令系统课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统教学难点 :( 1)、寄存器间接寻址、变址寻址、相对寻址等概念;( 2)、堆栈操作指令的应用。( 3)、十进制调整指令 DA A的应用;( 4)、控制转移指令转移目的地址、偏移量 rel的计算;( 5)、子程序调用、返回指令的用法。课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统3.1 MCS-51单片机指令格式和寻址方式3.1.1 指令系统概述指令 :是供用户使用的单片机的软件资源,是单片机所能接受的软件工作者的命令的最小工作单位。指令系统 :单片机所能执行的指令集合。机器语言 :指令以二进制码来表示。汇编语言 :指令以助记符形式来表示。机器语言程序 :使用机器语言编写的程序。汇编语言程序 :使用汇编语言编写的程序。注意: MCS-51单片机指令系统不具有通用性,因此,用其编写的汇编语言程序也不具有通用性,不能移植。 课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统MCS-51系列单片机的汇编语言指令系统共有 111条指令 ,其中 49条为单字节指令 ,45条为双字节指令 ,17条为三字节指令。从指令执行的时间来看 ,单机器周期指令 64条 ,双机器周期指令45条 ,四机器周期指令 2条。MCS-51单片机的指令系统共有 33个功能 ,用汇编语言编程时 ,只需 44个助记符。( 1)、数据传送类指令( 29条)( 2)、算术运算类指令( 24条)( 3)、逻辑运算及移位类指令( 24条)( 4)、控制转移类指令( 17条)( 5)、位操作类指令( 17条) 课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统3.1.2 MCS-51单片机 指令格式指令格式:即指令的表示方法,其内容包括指令的长度和指令内部信息的安排。采用助记符表示的汇编语言指令格式如下:标号: 操作码助记符 目的操作数 , 源操作数 ;注释 ( 1) 一条指令中标号、操作数、注释部分可有可无,但操作码部分必不可少。( 2)标号是程序员根据编程需要给指令设定的符号地址,标号由1 8个字符组成,不能用系统规定的寄存器名,也不能用指令系统中的助记符名称,它的第一个字符必须是英文字,不能是数字或其它符号,标号后必须用冒号 “ : ” 。课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统( 3) 操作 码 表示指令的操作种类, 用来 规 定指令 进 行什么操作,常用 操作 码 的英文名称或缩写形式来表示, 操作 码 后必须有一个或多哥空格 “ ” 作间隔符 。例如: MOV 表示数据传送操作, ADD 表示加法操作。( 4) 操作数表示指令操作的 对 象,它可能是一个具体的数据 ,也可能是指出到哪里取得数据的地址或符号 。一条指令中,可能没有( RET指令),也可能有一个( CPL A指令)、两个( MOV A,#00H指令, MOV 30H,#50H指令)或三个( CJNE A,#00H,NEXT) 操作数。根据操作数的位置的不同,可分为目的(左)操作数和源(右)操作数, 操作数之间也以逗号 “, ”相隔( 乘法指令 MUL AB和除法指令 DIV AB除外) 。课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统( 5) 注释是对指令的解释说明,用以提高程序的可读性。注释前必须加分号 “; ”。 ( 6) 书写汇编语言指令必须注意以上规则。MCS-51单片机汇编语言指令是变长指令,下面举例说明:( 1)一字节指令即指令只有一个字节,只须一个存储单元存放。操作码和操作数信息同在其中。a)、 有些一字节指令,由于指令的功能明确,无需具体指定操作数。例: INC DPTR; 功能:数据指针加 1;二进制 指令 代 码 : 10100011( 8位代 码 全为操作码信息)。 课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统b)、 有些指令的操作数在通用寄存器中,而寄存器编码只须三位二进制数, 可把寄存器编码与指令操作码 “ 挤 ” 在一个字节中。例: MOV A, Rn; 功能:寄存器的内容送累加器 A;二进制 指令 代 码 : 11101rrr;二进制码 11101代表操作码信息;二进制码 rrr代表操作数信息。例: MOV A, R1; 功能:寄存器 R1的内容送累加器 A;二进制 指令 代 码 : 11101001;二进制码 11101代表操作码信息;二进制码 001代表操作数寄存器 R1的信息。课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统( 2) 二字节指令即指令包含两个字节,其中第一个字节为操作码,第二个字节为操作数。例: MOV A, #data; 功能:立即数 DATA送累加器 A;二进制 指令 代 码 : 程序存 储 器 单 元 01110100立即数 data二进制 码 01110100代表操作码信息;二进制码 data代表操作数信息。例: MOV A, #38H; 功能:立即数 38H送累加器 A;二进制 指令 代 码 : 程序存 储 器 单 元 0111010000111000课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统二进制 码 01110100代表操作码信息;二进制码 00111000代表操作数 #38H的信息。( 2) 三字节指令即 指令 包含三个字节 , 其中第一个字节为 操作 码 , 第二、三个字节为 操作数,其中,操作数既可能是数据,也可能是地址 (符号或标号 )。例: ANL direct, #data;功能:直接寻址单元 direct的内容与立即数 data相与,结果回送直接寻址单元 direct;二进制 指令 代 码 :程序存 储 器 单 元 01010011直接地址 direct立即数 data课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统二进制 码 01010011代表操作码信息;二进制码 direct, data代表操作数信息。例: ANL 30H, #40H;功能:直接寻址单元 30H的内容与立即数 40H相与,结果回送直接寻址单元 30H;二进制 指令 代 码 :二进制 码 01010011代表操作码信息;二进制码 00110000, 01000000代表操作数信息。程序存 储 器 单 元 010100110011000001000000课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统3.1.3 MCS-51单片机 寻址方式MCS-51单片机指令系统中的大多数指令执行时都需要使用操作数,而在单片机中只有指定了操作数的存储单元才能得到操作数,因此,要得到操作数,就只需找到操作数存放的单元即可。所 谓寻 址方式:即如何确定参与操作的数的真正 单元。根据操作数单元指定方法的不同,就有了不同的寻址方式。MCS-51单片机共有 7种寻址方式。由于指令中的操作数有 目的(左)操作数和源(右)操作数之分,因此,在讲解寻址方式时,均以源(右)操作数为例。( 1)寄存器寻址方式a)、 寄存器 寻 址就是指操作数在寄存器中,因此,指定了寄存器就得到了操作数。课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统b) 寄存器 寻 址的指令中 , 以符号名称来表示寄存器 。例 : 假设原来( A) =30H,( R1) =40H, 现执行指令 MOV A, R1;指令功能 :将 R1中的内容 (操作数 )送 A中;指令执行过程 : A ( R1);指令执行结果 : (A)=( R1) =40H。c) 寻址范围: 1)当前工作寄存器组 R0 R7;2) 部分专用寄存器 A, AB, DPIR等。例: MOV P1, A; 将累加器 A的内容送到 P1口MOV P1, R4; 将寄存器 R4的内容送到 P1口CLR A; 将累加器 A清 0CPL A; 将累加器 A中的内容取反MUL AB; 将累加器 A的内容与寄存器 B的内容相乘课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统( 2)直接寻址方式a) 直接寻址即指令所需的操作数直接以操作数存放的单元地址的形式给出。例:假设内部 RAM 3AH单元的内容是 88H, 累加器 A的内容是 10H,现执行指令 MOV A, 3AH。指令功能 :将 3AH中的内容 (操作数 )送 A中;指令执行过程 : A ( 3AH);指令执行结果 : (A)=( 3AH) =88H。b) 采用直接 寻 址的指令一般是双字 节 或三字 节 指令 。c) 直接 寻 址是 访问专 用寄存器的唯一方法。d) 寻 址范 围 :1) 内部 RAM低 128个 单 元 , 低 128单 元 地址 在指令中 须 以课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统直接单元地址形式给出;2)专用寄存器,专用寄存器除以单元地址形式给出外,还可以以寄存器符号的形式给出。例: MOV P1, 20H; 将内部 RAM 20H单元的内容传送到 P1口MOV A, P0; 将 P0口的内容传送到 AMOV A, 80H;将 P0口的内容传送到 A( 3) 寄存器间接寻址方式a) 寄存器间接寻址是指指令所需的操作数是通过寄存器间接得到的,寄存器中存放的则是操作数存放的单元地址。例:假设内部 RAM 3AH单元的内容是 65H, 寄存器 R0的内容是 3AH,现执行指令 MOV A, R0。指令功能 :先将 R0的内容 3AH作为内部 RAM的单元地址,再将课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统内部 RAM单元地址为 3AH中的内容 65H(操作数 )送 A中。指令执行过程 : A ( R0)或 A ( 3AH)指令执行结果 : (A)=( R0) =( 3AH) =65H。b) 间址寄存器: R0、 R1、 DPTR、 SP。指令中应在间址寄存器名之前加前缀 ,SP除外 。c) 寻址范围:1) 内部 RAM低 128单元,可使用 R0, R1作间址寄存器, 其通用形式为 Ri(I=0或 1)。例: MOV A, R1 ;将 R1指示的地址单元中内容传送至 A中。假设( R1) =40H,( 40H) =90H, 即把内部 RAM中 40H单元中的内容 90H送到 A。 课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统2) 外部(片外) RAM 64KB单元,可使用 DPTR作间址寄存器, 其形式为 DPTR。 例: MOVX A, DPTR;将 DPTR指示的外部 RAM地址单元中的内容传送至 A。 假设( DPTR) =1000H,( 1000H) =80H, 即把外部 RAM 1000H单元中的内容 80H送到 A。3) 外部(片外) RAM的低 256单元( 0000H 00FFH), 它是一个特殊的寻址区,既可以使用 DPTR作间址寄存器寻址,也可以使用 R0或 R1作间址寄存器寻址。例:假设外部 RAM 0020H单元中的内容是 45H, 现需将其送 A中。MOV DPTR, #0020H; MOVX A, DPTR或 MOV R0, #20H; MOVX A, R0; 课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统4) 在 执 行堆 栈 操作指令( PUSH, POP) 时 ,也算 为 寄存器间 接 寻 址 ,即以堆 栈 指 针 ( SP) 作 间 址寄存器的 间 接 寻 址方式。例: PUSH ACC;将 A中的内容压入堆栈POP ACC;将 堆栈中的内容弹出,送到 A( 4) 立即寻址方式a) 立即 寻 址即 指令所需的 操作数 已 在指令中直接 给 出。通常,把 直接 出 现 在指令中的操作 数 称之 为 立即数。 为 了与直接 寻 址指令中的直接 单元 地址相区 别 , 一般应 在立即数前面加 “ #” 标 志。b) 采用立即 寻 址的指令,一般 为 双字 节 。第一个字 节为 指令的操作 码 ,第二个字 节为 立即数。c) 寻 址范 围 :程序存 储 器 空间 。 课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统例: MOV A, #40H; 指令功能 :将程序存储器中某单元的内容 3AH (立即数 )送 A中指令执行过程 : A 3AH指令执行结果: (A)=3AHd) 除 8位立即数外, MCS-51指令系 统 中 还 有一条 16位立即 寻址指令,即: MOV DPTR, #data16, 其功能是把 16位立即数送数据指 针 DPTR。例: MOV DPTR, #1000H;指令功能 :将程序存储器中某单元的内容 1000H(立即数 )送 DPTR中MOV P1, #55H ; 将立即数 55H送 P1口MOV 20H, #55H ; 将立即数 55H送 20H单元MOV R0, #20H ; 将立即数 20H送寄存器 R0课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统( 5)变址寻址方式a) 变 址 寻 址 用于访问程序存储器中的常数或数据表格。变 址 寻 址即是以 DPTR或 PC作 为 基址寄存器,以累加器 A为变 址寄存器,并以两者的内容相加形成 16位地址作 为 目的 操作数地址 ,以达到访问程序存储器中的常数或数据表格的目的 。 b) 寻 址范 围 : 程序存 储 器 空间 。c) 指令数目 : 三条,均为一字节指令MOVC A, A+DPTR;指令执行过程: A ( A) +( DPTR)指令执行结果:( A) =( A) +( DPTR)MOVC A, A+PC;指令执行过程: A ( A) +( PC)课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统指令执行结果:( A) =( A) +( PC)JMP A+DPTR指令执行过程: PC ( A) +( DPTR)指令执行结果:( PC) =( A) +( DPTR)d) 注意:三条指令中 A的内容均为 8位二进制无符号数。例:假 设累加器( A) =02H,( DPTR) =0300H, 外部程序存储器 ROM中的 0302H单元的内容是 55H, 则指令 MOVC A, A+DPTR的执行结果是累加器 A的内容为 55H。该指令的执行过程如图所示注意:指令 MOVC A, A+DPTR 执行前后累加器 A的内容发生了变化。课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统( 6)位寻址方式a) 位寻址即对二进制数据位进行寻址。b) 寻址范围: 1)、 内部 RAM中的位寻址区(单元地址 20H 2FH), 128个位,位地址是 00H 7FH。 位地址区中的位有两种表示方法:直接使用位地址表示;单元地址加位数表示例: MOV C, 20H; 将位地址为 20H的位状态传送给累加位 C。例: MOV C, 24H.0; 将位地址为 20H的位状态传累加位 C。例: SETB 3DH; 将内部 RAM位寻址区中的 3DH位置 1。假设内部 RAM 27H单元的内容是 00H, 执行 SETB 3DH后,由于 3DH对应内部 RAM 27H的第 5位,因此该位变为 1,也就是 27H单元的内容变为 20H。 该指令的执行过程如图所示。课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统2)、 专用寄存器的可寻址位 可供位寻址的专用寄存器有 11个, PSW, IP IE, PO, P1,P2, P3, SCON, A, TCON, B, 实有可寻址位 83位。 专用寄存器的可寻址位有四种表示方法:直接使用位地址表示例: MOV C, D5H;将 PSW中位地址为 D5H的位状态传给累加位 C单元地址加位数表示例: MOV C, D0H.5;将 PSW中位地址为 D5H的位状态传给累加位 C位 名称表示例: MOV C, F0;将 PSW中位地址为 D5H的位状态传给累加位 C专用寄存器符号加位数表示例: MOV C, PSW.5;将 PSW中位地址为 D5H的位状态传给累加位 C课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统( 7)相对寻址方式a) 相 对寻 址是 为解决程序转移而设置的,为转移指令所用。相 对寻 址是将程序 计 数器 PC的当前 值 与指令 中给出的地址 偏移量 ( rel) 相加,其和 为转 移指令的目的地址。注意: PC当前 值 是指 执 行完 该转 移指令后的 PC值 ,即 转 移指令的 PC值 加上 转 移指令的字 节 数。转 移指令 转 移 到的目的地址 =转 移指令 PC当前值 +偏移量 rel=转 移指令 首 地址 +转 移指令字 节 数 +rel。 偏移量 rel是一个 带 符号的 8位二 进 制 补码 数,所能表示数的范 围 为 -128 +127。 b) 寻址范围: 程序存 储 器 空间 具体地说,相对转移是以转移指令所在地址为基点,向前 课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统(地址增加方向)最大可转移( 127+转移指令字节数)个单元地址,向后(地址减少方向)最大可转移( 128-转移指令字节数)个单元地址。例: SJMP 54H; 指令执行的操作是将 PC当前的内容与 54H相加,结果再送回 PC中,成为下一条将要执行指令的地址。假设指令 SJMP 54H的机器码 80H 54H存放在程序存储器 2000H单元,当 CPU执行到该指令时,先后从 2000H和 2001H单元取出指令,此时 PC自动变为 2002H; 再把 PC的内容与操作数 54H相加,形成目标地址 2056H, 再送回 PC, 使得程序跳转到 2056H单元继续执行。指令执行过程如图所示。课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统3.1.4 MCS-51单片机 寻址方式小结( 1) 对片内外程序存储器的指令寻址只能使用变址寻址;( 2)对 内部数据存储器的寻址 有多种方式;( 3)对 外部数据存储器的寻址 只能使用寄存器间接寻址方式;( 4)对立即数的寻址较为简单,立即数只有两种 8位和 16位,并且在指令中给出;( 5)相对寻址用于解决程序转移问题;( 6)对于源操作数的寻址有 7种方式,而对于目的操作数的寻址只有寄存器寻址、寄存器间接寻址、直接寻址、位寻址 4钟方式。课程:单片机技术 教材:单片机基础 内容: 3 MCS-51单片机指令系统3.2 MCS-51单片机指令分类介绍MCS-51单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论