




已阅读5页,还剩128页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 教学基本要求: (1)、了解单片机的指令系统、编程语言等基本概念; (2)、熟悉单片机汇编语言指令格式中符号的意义; (3)、熟悉单片机汇编语言指令系统每条指令的功能; (4)、掌握单片机指令系统的7种寻址方式; (5)、掌握单片机指令系统每类指令的用法。 教学重点: (1)、单片机指令系统的寻址方式; (2)、片内、外RAM单元之间的数据传送; (3)、加法运算指令组的用法; (4)、逻辑运算指令组的用法; (5)、控制转移指令组的用法。 3 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)标号是程序员根据编程需要给指令设定的符号地址,标号由 18个字符组成,不能用系统规定的寄存器名,也不能用指令系 统中的助记符名称,它的第一个字符必须是英文字,不能是数字 或其它符号,标号后必须用冒号“:”。 课程:单片机技术 教材:单片机基础 内容: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; 二进制指令代码码:程序存储器单元01110100 00111000 课程:单片机技术 教材:单片机基础 内容: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代表操作数信息。 程序存储器单元01010011 00110000 01000000 课程:单片机技术 教材:单片机基础 内容: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)当前工作寄存器组R0R7; 2)部分专用寄存器A,AB,DPIR等。 例:MOV P1, A; 将累加器A的内容送到P1口 MOV P1, R4;将寄存器R4的内容送到P1口 CLR A; 将累加器A清0 CPL 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口的内容传送到A MOV 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单元(0000H00FFH),它是 一个特殊的寻址区,既可以使用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中 指令执行过程: A3AH 指令执行结果:(A)=3AH d)除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中的位寻址区(单元地址20H2FH),128个 位,位地址是00H7FH。位地址区中的位有两种表示方法: 直接使用位地址表示;单元地址加位数表示 例: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单片机指令系统包括111条指令,按功能可以划分为以 下5类: 数据传送类指令(29条); 算术运算类指令(24条); 逻辑运算类指令(24条); 控制转移类指令(17条); 位操作类指令(17条); 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 3.2.1 指令格式中符号意义说明 Rn:当前寄存器组的8个通用寄存器R0R7(n=07)。 Ri:当前寄存器组中的2个寄存器RO,R1,可作地址指针,即间 接寻址的寄存器(i=0,1)。 direct:内部RAM的8位地址,既可以是内部RAM的低128个单元地 址(0127),也可以是专用寄存器的单元地址或符号,如I/O端 口,控制寄存器,状态寄存器等(128255)。 #data:包含在指令中的8位立即数。 #data16:包含在指令中的16位立即数。 addr16:表示16位目的地址,只限于在LCALL和LJMP指令中使用 ,目的地址范围是64KB的程序存储器地址空间。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 addr11:表示11位目的地址,只限于在ACALL和AJMP指令中使用 ,目的的地址必须存放在与下一条指令第一个字节同一个2KB程序 存储器地址空间之内。 Rel:相对转移指令中的偏移量,为8位带符号补码数。 DPTR:数据指针,可用作16位的地址寄存器。 Bit:内部RAM或专用寄存器中的直接寻址位。 A:累加器(直接寻址方式的累加器表示为Acc) B:B寄存器,用于MUL和DIV指令中。 C:进位标志位或布尔处理机中的累加位。 :为间址寄存器或基址寄存器的前缀标志。 /:位操作数的前缀,表示对该位状态取反。 (X):某寄存器或某单单元中的内容。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 (X):由X间接寻址的单元中的内容。 :表示将箭头右边的内容传送至箭头的左边。 3.2.2 数据传送类指令 (X):由X间接寻址的单元中的内容。 :表示将箭头右边的内容传送至箭头的左边。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 3.2.2 数据传送类指令 (1)概述 a)指令数目:29条; b)指令通用格式: 助记符操作码 目的操作数, 源操作数; c)指令功能:数据传送,属于数据复制性质; d)助记符类型(8种): MOV, MOVC, MOVX XCH, XCHD, SWAP, PUSH, POP e)寻址方式 源操作数:寄存器,寄存器间间接、直接、立即、变变址寻址 ; 目的操作数:寄存器,寄存器间间接、直接寻址 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 (2)内部RAM数据传送指令组 a)立即数传送指令 指令格式相应操作操作结果说明 MOV A, #data Adata (A)=data MOV direct, #data directdata (direct)=data MOV Rn, #data Rndata ( Rn )=datan=07 MOV Ri, #data(Ri)data( Ri)=datai=0,1 MOV DPTR,#data16 DPTRdata16 (DPTR)=data16 例:MOV A, #20H; 指令执行后(A)=20H 例:MOV 20H, #20H;指令执行后(20H)=20H 例:MOV SP, #60H;指令执行后(SP)=60H 例:MOV B, #30H;指令执行后(B)=30H 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:MOV R1, #20H; 指令执行后(R1)=20H 例:MOV R0, #20H; 指令执行后(R0)=20H MOV R0, #30H; 指令执行后((R0))=30H或(20H)=30H 例:MOV DPTR, #1020H; 指令执行后(DPTR)= 1020H; (DPH)=10H, (DPL)=20H 本指令是三字节指令,第一个字节是操作码信息,第二、第三 字节分别是操作数(立即数)的高、低8位信息,其二进制目标代 码存放格式如下: 操作码10010000程序 存储器 立即数高8位(DPH)00010000 立即数低8位(DPL)00100000 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 b)内部RAM单元之间的数据传送指令 指令格式相应操作操作结果 MOV direct2, direct1direct2(direct1) (direct2)=(direct1) MOV direct, Rndirect(Rn) (direct)=(Rn) MOV Rn, directRn(direct)(Rn)=(direct) MOV direct, Ridirect( Ri)(direct)=( Ri) MOV Ri, direct(Ri)(direct)(Ri)=(direct) 例:MOV 30H, 20H; 指令执行后(30H)=(20H) 例:MOV P1, 20H; 指令执行后(P1)=(20H) 例:MOV P2, P0; 指令执行后(P2)=(P0) 例:MOV 40H, P3; 指令执行后(40H)=(P3) 例:MOV 0A0H, R7; 指令执行后(P2)=(R7) 例:MOV PSW, R1; 指令执行后(PSW)=(R1) 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:MOV R2, 20H; 指令执行后(R2)=(20H) 例:MOV R3, B; 指令执行后(R3)=(B) 例:MOV 40H, R0; 指令执行后(40H)=(R0) 例:MOV P0, R1; 指令执行后(P0)= (R1) 例:MOV R0, 0A0H;指令执行后(R0)=(P2) 例:MOV R1, 30H; 指令执行后(R1)=(30H) c)通过累加器的数据传送指令 指令格式相应操作操作结果 MOV A, RnA(Rn) (A)=(Rn) MOV Rn, ARn (A)(Rn)=(A) MOV A, directA(direct)(A)=(direct) MOV direct, Adirect(A)(direct)=(A) MOV A, Ri A(Ri)(A)= (Ri) MOV Ri, A(Ri)(A)(Ri)=(A) 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:MOV A, R0; 指令执行后(A)=(R0) 例:MOV R3, A; 指令执行后(R3)=(A) 例:MOV A, B; 指令执行后(A)=(B) 例:MOV A, 40H; 指令执行后(A)= (40H) 例:MOV PSW, A; 指令执行后(PSW)= (A) 例:MOV 60H, A; 指令执行后(60H)= (A) 例:MOV A, R0; 指令执行后(A)= (R0) 例:MOV R1, A; 指令执行后(R1)=(A) 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 (3)外部RAM数据传送指令组 指令格式相应操作操作结果 MOVX A, DPTRA((DPTR)) (A)=((DPTR)) MOVX DPTR, A(DPTR)(A) ( (DPTR))=(A) MOVX A, RiA((Ri)) (A)=((Ri)) MOVX Ri, A(Ri)(A)((Ri))=(A) 例:将外部RAM 2000H单元的内容20H送至A中。 MOV DPTR, #2000H;外部RAM 2000H单元地址作为16位立 即数送数据指针DPTR MOVX A, DPTR; 外部RAM 2000H单元的内容20H送A (A)=(DPTR)=(2000H)=20H 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:将累加器A中的内容40H送至外部RAM 4000H单元中。 MOV DPTR, #4000H;外部RAM 4000H单元地址作为16位立 即数送数据指针DPTR MOVX DPTR, A ; A的内容40H送外部RAM 4000H单元 (DPTR)=(4000H)=(A)=40H 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:将外部RAM 0050H单元的内容20H送至A中。 a)MOV DPTR, #0050H;外部RAM 0050H单元地址作为16位立 即数送数据指针DPTR MOVX A, DPTR; 外部RAM 0050H单元的内容20H送A (A)=(DPTR)=(2000H)=20H b)MOV R0, #50H; 外部RAM 0050H单元地址作为8位立 即数送间址寄存器R0 MOVX A, R0; 外部RAM 0050H单元的内容20H送A (A)=(R0)=(50H)=20H 例:将累加器A中的内容40H送至外部RAM 0050H单元中。 a)MOV DPTR, #0050H;外部RAM 0050H单元地址作为16位立 即数送数据指针DPTR 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 MOVX DPTR, A ; A的内容40H送外部RAM 0050H单元 (DPTR)=(0050H)=(A)=40H b)MOV R1, #50H; 外部RAM 0050H单元地址作为8位立 即数送间址寄存器R1 MOVX R1, A; A的内容40H送外部RAM 0050H单元 (R1)=(50H)=(A)=40H 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:将内部RAM 60H单元的内容40H送至外部RAM 4000H单元中。 MOV A, 60H; 将60H单元的内容40H先送A中,(A)=40H MOV DPTR, #4000H;外部RAM 4000H单元地址送DPTR MOVX DPTR, A ; A的内容40H送外部RAM 4000H单元 (DPTR)=(4000H)=(A)=40H 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:将外部RAM 4000H单元的内容40H送至内部RAM 60H单元中。 MOV DPTR, #4000H;外部RAM 4000H单元地址送DPTR MOVX A, DPTR ;外部RAM 4000H单元的内容40H送A (A)=(DPTR)=(4000H)=40H MOV 60H, A ;将A的内容40H送60H单元,(60H)=40H 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:将外部RAM 4000H单元内容40H送至外部RAM 0050H单元中。 MOV DPTR, #4000H;外部RAM 4000H单元地址送DPTR MOVX A, DPTR ;外部RAM 4000H单元的内容40H送A (A)=(DPTR)=(4000H)=40H MOV R0, #50H ;外部RAM 0050H单元地址送间址寄存器R0 MOVX R0,A; 外部RAM(0050H)=(A)=40H 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:将内部RAM 60H单元内容40H送至内部RAM 50H单元中。 a)MOV 50H, 60H;内部RAM 60H单元内容40H送至内部RAM 50H单元中,(50H)=(60H)=40H b)MOV A,60H;先将内部RAM 60H单元内容40H送A,(A)=40H MOV 50H,A;再将A的内容送内部RAM 50H单元,(50H)=40H 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 注意: 1)外部RAM与外部RAM单元之间、外部RAM与内部RAM单元之间 的数据传送必须采用寄存器间接寻址的方式,而且必须通过累加 器A进行; 2)MCS-51指令系统中没有专用的存储器读写指令,实际上外 部数据存储器数据传送指令就是外部RAM的读写指令; 3)内部RAM单元之间的数据传送可有多种寻址方式。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 (4)程序存储器数据传送指令组 程序存储器数据传送指令组既可用于内部程序存储储器,也可 用于外部程序存储储器。 程序存储器数据传送指令组的指令只有两条,均为单字节指 令,采用变址寻址方式。数据只能从程序存储器单向读出,而且 也必须通过累加器A进行传送。 MOVC A, A+DPTR; MOVC A, A+PC 这两条指令用于访问程序存储器中的数据表格,因此也称之 为查表指令。其功能非常重要,将在第四章汇编语言程序设计中 讲解。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 (5)数据交换指令组 数据交换主要在内部RAM单单元与A之间间、A的高、低4位之间进进 行,有整字节节和半字节节两种交换换。 指令类型指令格式相应操作 整字节交换 XCH A, Rn(A)(Rn) XCH A, direct(A)(direct) XCH A, Ri(A)(Ri) 半字节交换XCHD A, Ri(A)30 (Ri)30 A高低半字节交换SWAP A (A)30 (A)74 例:假设(A)=38H,(R0)=54H,执行指令XCH A, R0; 结果为(A)= 54H,(R0)= 38H。 例:假设(A)=88H,(30H)=45HH,执行指令XCH A, 30H; 结果为(A)= 45H,(30H)= 88H。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:假设(A)=34H,(R1)=50H,(50H)= 56H, 执行指令XCH A, R1; 结果为(A)= 56H,((R1))=(50H)=34H。 例:假设(A)=34H,(R1)=50H,(50H)= 56H, 执行指令XCHD A, R1 ; 结果为(A)= 36H, ((R1))=(50H)=54H。 例:假设(A)=34H,执行指令SWAP A; 结果为(A)= 43H。 思考题:分析下列程序段执行的过程及结果: 假设内部RAM 2AH、2BH单元中连续存放有4个BCD码(1个BCD码 占4个二进制位) 2AH单元2BH单元 a3a2a1a0 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 MOV R0, #2AH; MOV A, R0; SWAP A; MOV R0, A; MOV R1, #2BH; MOV A, R1; SWAP A; XCH A, R0; MOV R1, A; 程序段执行后的最终结果: (2AH)= ;(2BH)= ;(A)= ; 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 思考题:解 MOV R0, #2AH;(R0)=2AH MOV A, R0; (A)=a3a2 SWAP A; (A)=a2a3 MOV R0, A; (R0)=(2AH)=a2a3 MOV R1, #2BH;(R1)=2BH MOV A, R1; (A)=a1a0 SWAP A; (A)=a0a1 XCH A, R0; (A)=a2a3,(R0)=(2AH)=a0a1 MOV R1, A; (R1)=(2BH)=(A)=a2a3 程序段执行后的最终结果: (2AH)= a0a1 ;(2BH)= a2a3 ;(A)= a2a3 ; 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 (6)堆栈操作指令组 堆栈操作指令组只有两条指令:进栈指令和出栈指令。 a)进栈指令: PUSH direct; 功能:为为内部RAM低128单单元或专专用寄存器内容送至栈顶单栈顶单 元 。 指令操作过程:SP(SP)+1;(SP)(direct) b)出栈指令: POP direct; 功能:栈顶单栈顶单 元内容送内部RAM低128单单元或专专用寄存器。 指令操作过程: direct((SP));(SP)(SP)-1 注意:进栈指令和出栈指令均采用寄存器间接寻址方式,间址 寄存器是SP, 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:将片外RAM 2500H单元的内容88H送到片内RAM 40H单元, MOV DPTR, #2500H; (DPTR)=2500H MOVX A, DPTR; (A)=(DPTR)=88H MOV SP, #60H; (SP)=60H PUSH ACC; (SP)=61H,(61H)=88H POP 40H; (40H)=88H,(SP)=60H 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:分析以下程序段的执行结果 MOV SP, #60H;(SP)=60H MOV A, #30H;(A)=30H MOV B, #40H;(B)=40H PUSH ACC; PUSH B POP DPH; POP DPL; 执行结果: (DPH)= (DPL)= 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例: 单片机应用系统程序设计时,经常需要用到中断服务程序和 各类子程序,在执行中断服务程序和子程序前, 常常需要把程序 状态寄存器PSW、 累加器A、 数据指针DPTR的内容保护起来(现 场进栈保护),在中断服务程序和子程序执行结束之前,再恢复 它们的内容(现场出栈恢复)。以下程序段可实现上述功能。 MOV SP, #60H; PUSH PSW; PUSH ACC; PUSH DPL; PUSH DPH; 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 POP DPH; POP DPL; POP ACC; POP PSW; 注意:堆栈深度、堆栈平衡,数据进栈、出栈的先后次序。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 3.2.3 算术运算类指令 a)指令数目:24条; b)指令通用格式: 助记符操作码 目的操作数, 源操作数; c)指令功能:数据算术运算(加 减 乘 除),此类指令对程 序状态字PSW的进位位(CY),辅助进位位(AC),溢出位(OV) 三种标志位有影响,即对它们自动置位或复位,但是,加1和减1 指令不影响这些标志; d)助记符类型(8种): ADD、ADDC、SUBB、INC、DEC、DA、MUL、DIV e)注意: 算术运算类指令都是针对8位二进制无符号数的。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 (1)加法指令组 指令格式相应操作操作结果 ADD A, RnA(A)+(Rn) (A)=(A)+(Rn) ADD A, directA(A)+(direct) (A)=(A)+(direct) ADD A, RiA(A)+((Ri)) (A)=(A)+ ((Ri)) ADD A, #dataA(A)+ data(A)=(A)+ data a)将A中的数与源操作数所指出的内容相加,其相加结果仍存 在A中。 b)8位二进制数加法运算指令的一个加数总是累加器A。 c)运算影响PSW的位状态 相加过程中,若位3有进位,则AC置1,否则,AC清0,若位7 有进位,则CY置1,否则,CY清0。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 d)、对于无符号数相加,若CY置位,说明和产生溢出,即大于 255。 e)、对于有符号数相加,当位6或位7之中只有一位进位时,溢 出标志位OV置位,说明和产生了溢出,结果出错。 OV位只对有符号数加法有意义,对于无符号数加法无意义。 溢出表达式:OV=D6cyD7cy D6cy:位6向位7的进位 D7cy:位7向cy的进位 例:假设(A)=C2H,(R0)=A9H,执行ADD A, R0 11000010 +10101001 101101011 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 OV=D6cyD7cy=01=1 若C2H,A9H为无符号数,则(A)=6BH,(AC)=0,(CY)=1 ,则表示溢出,结果大于255。 若C2H,A9H为有符号数,则OV=1,表示有溢出,结果出错, 因为两个负数相加不可能得到正数的和。 例:假设(A)=78H,(10H)=64H,执行指令ADD A, 10H, 求两无符号数之和,并说明PSW的有关标志位状态。 01111000 +) 01100100 11011100 PSW: OV=D6cyD7cy=10=1,CY=0, AC=0。 练习题:(A)=53H,(R0)=FCH,执行指令:ADD A, R0 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 (2)带进位加法指令组 指令格式相应操作操作结果 ADDC A, RnA(A)+(Rn)+(CY) (A)=(A)+(Rn) +(CY) ADDC A, directA(A)+(direct)+(CY ) (A)=(A)+(direct) +(CY) ADDC A, RiA(A)+((Ri))+(CY ) (A)=(A)+((Ri))+(CY) ADDC A, #dataA(A)+ data +(CY) (A)=(A)+ data +(CY) a)把源操作数所指示的内容和A中的内容及进位标志CY相加, 结果存入A中。运算前一个加数必定在A中,运算后和存于A中。 b)此类指令运算结果同样对PSW中相关位有影响,影响规则与加 法指令组相同。 c)它一般用于多字节数的加法运算,低字节相加的和可能产生 进位,可通过带进位加法指令将低字节的进位加到高字节上去, 高字节求和时,必须使用带进位的加法指令。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 例:假设(A)=AEH,(20H)=81H,(CY)=1,求两数之和,及 PSW相关位内容,执行指令ADDC A, 20H。 10101110 10000001 +) 1 100110000 OV=D6cyD7cy=01=1;CY=1 AC=1 (A)=30H 练习题:假设(A)=85H, (20H)=FFH, CY=1求两数之和,及 PSW相关位内容,执行指令ADDC A, 20H。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51单片机指令系统 (3)带减位加法指令组 指令格式相应操作操作结果 SUBB A, RnA(A)-(Rn)-(CY) (A)=(A)-(Rn) -(CY) SUBB A, directA(A)-(direct)-(CY ) (A)=(A)-(direct) -(CY) SUBB A, RiA(A)-((Ri))-(CY ) (A)=(A)-((Ri))-(CY) SUBB A, #dataA(A)- data -(CY) (A)=(A)- data -(CY) a)把A中的内容和源操作数所指示的内容及进位标志CY相减, 结果存入A中。运算前被减数必定在A中,运算后差存于A中。 b)此类指令运算结果同样对PSW中相关位有影响,影响规则与加 法指令组相同。其中,OV位只对有符号数减法有意义。 c)减法运算只有带借位减法指令,而没有不带借位减法指令。 如需进行不带借位的减法运算,只需在用SUBB指令前先用CLR C指 令把CY清0即可。 课程:单片机技术 教材:单片机基础 内容:3 MCS-51
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人力资源数字化转型与发展
- 2025云南昭通昭阳区盘河镇招聘城镇公益性岗位工作人员2人笔试备考试题及答案解析
- 培养初中生的创新意识和能力
- 天然气消费市场预案
- 儿童学习心理报告
- 2025年泌尿外科疾病诊断评估答案及解析
- 2025年肌肉骨骼科学手术操作技能测验试卷答案及解析
- 化学工业精细化工预案
- 2025年妇产科疾病常见问题解答答案及解析
- 2025年四川宜宾市珙县事业单位选调13人笔试备考题库及答案详解一套
- 2020~2022年新高考全国卷Ⅰ数学试题及参考答案汇总
- 蛛网膜下腔出血的个案护理
- 李中莹 亲子关系全面技巧
- PMC部门运作流程对下达的生产计划任务合理性负责
- 软件系统运维方案
- 防止电力电力建设施工安全事故三十项重点要求考试题
- 管线打开作业工作安全分析(JSA)记录表
- 污水处理池 (有限空间)作业安全告知牌及警示标志
- 住院病人药物使用情况评价表
- OpenVPX标准和架构精选课件
- 大学物理(热学篇)课件
评论
0/150
提交评论