当前位置:首页 >> 小学教育 >>

第03章 MCS - 51单片机指令系统


第3章 MCS-51单片机指令系统
指令系统简介 MCS-51单片机指令系统 汇编语言程序设计

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
3.1指令系统简介

MCS-51系列单片机指令系统共有111条指 令,其中有49条单字节指令,45条双字节指 令和

17条三字节指令。 用这些指令来完成:数据传送、算术运算、 逻辑运算、位操作、程序转移等。

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
一、指令格式
MCS-51指令系统中的每一条指令都有两级指 令格式: CPU可直接识别并执行的机器语言指令。 汇编语言指令(简称汇编指令)。 MCS-51汇编语言指令格式,由以下几个部分 组成:[标号:] 操作码 [目的操作数] [, 源操作数] [;注释]

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
二、寻址方式
所谓寻址方式, 就是寻找操作数地址的方式, 在用汇编语言编程时, 数据的存放、传送、 运算都要通过指令来完成。 每一种计算机都

具有多种寻址方式。寻址方式的多少是反映指
令系统优劣的主要指标之一。 寻址方式越多,

指令功能越强。

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
1. 7种寻址方式

(1) (2) (3) (4) (5) (6) (7)

立即寻址;? 直接寻址;? 寄存器寻址;? 寄存器间接寻址;? 基址寄存器加变址寄存器间接寻址; 相对寻址;? 位寻址。

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
(1) 立即寻址:
立即寻址方式是将操作数直接存放在指令字 节中,作为指令的一部分存放在代码段里。 比如:MOV A, #3AH 跟在指令操作码后面的数就是参加运 算的数, 该操作数称为立即数。立即数有一字 节和二字节两种可能, 如指令: MOV DPTR, #0DFFFH 上述两条指令均为立即寻址方式, 第 一条指令的功能是将立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据 指针DPTR中(0DFH→DPH, 0FFH→DPL)。

第 一 (1) 立即寻址: 节 注意: 指 数据作为立即数操作时候,前面必须加 令 “#” 格 如果碰到立即数的高位是ABCDEF,则前面 式 还要加0。 与 寻 MOV P1,#55H;指将立即数55H送到P1口 址 MOV 20H,#55H;指将立即数存放到20H这个地址 方 单元中去 (数据作为地址的时候,前面不用加#) 式
MOV R4,#0FH;指将立即数0FH送到寄存器R4中

第3章 MCS-51单片机指令系统

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
(2) 直接寻址:
在指令中直接给出操作数的地址, 这种寻 址方式就属于直接寻址方式。在这种方式 中, 指令的操作数部分直接是操作数的地 址。 如:MOV A,30H;将30H里面的数送 到A里面 ? MOV 21H,30H;将30H里面的数存放 到21H里面

第 一 (2)直接寻址: 节 在MCS -51 单片机指令系统中, 直接寻址方式中 指 可以访问 3 种存储器空间: ? 令 (1) 内部数据存储器的低 128 个字节 格 单元(00H~7FH)。? (2) 特殊功能寄存器。特殊功能寄存器 式 只能用直接寻址方式进行访问。比如:MOV 与 A,P1;将SFR中P1口的数据送入A. ? 寻 (3) 位地址空间。 MOV R4,#0FH;指将 址 立即数0FH送到寄存器R4中 方 式

第3章 MCS-51单片机指令系统

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
(3) 寄存器寻址:
在该寻址方式中, 参加操作的数存放在寄 存器里。寄存器包括8个工作寄存器R0~R7, 累加器A, 寄存器B、数据指针DPTR和布尔 处理器的位累加器C。 比如:MOV P1,A MOV P1,R4 CLR A;将A清零 CPL A;A中的内容取反 RL A;A中的内容左移

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
(4) 寄存器间接寻址:
该寻址方式中,寄存器的内容为操作数的 地址。 寄存器间接寻址只能使用寄存器R0、 R1 作为地址指针,寻址内部RAM区的数据; 当访问外部RAM时, 可使用R0、 R1及DPTR作 为地址指针。寄存器间接寻址符号为“@”,

第 一 (4) 寄存器间接寻址: 节 注:1、访问内部数据RAM和外部数据RAM所用操 指 作码是不一样的:内部为MOV,外部为MOVX 令 比如:MOV A,@R0 格 MOVX A,@DPTR 2、当用R0和R1对外部数据RAM作间接寻址 式 时,由于外部数据RAM需要16位地址,而R0和 与 R1只能提供8位地址,因此必须借助P2口的8位 寻 来作为高8位地址。 址 比如:MOV @R0,A 方 MOVX A,@R0; 这条指令意思 式 是把外部RAM中地址为P2R0的单元内容给A。

第3章 MCS-51单片机指令系统

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
(5)基址寄存器加变址寄存器间接寻址
这种寻址方式用于访问程序存储器中的数 据表格, 它以基址寄存器DPTR或PC的内容 为基本地址, 加上变址寄存器A的内容作为 操作数的地址, 例如: ? MOVC A, @DPTR+A?? MOVC A, @ PC+A 比如:累加器A=02H,DPTR=0300H,外部 ROM中,0302H地址单元的内容为55H, 则执行指令 MOVC A, @DPTR+A后,A中内容为 55H。

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
(6) 相对寻址:
在MCS -51 指令系统中设有转移指令, 分 为直接转移和相对转移指令, 在相对转移 指令中采用相对寻址方式。这种寻址方式 是以PC的内容为基本地址, 加上指令中给 定的偏移量作为转移地址,也就是目的地 址(用来修改PC的值)。指令中给出的偏 移量是一个 8 位带符号的常数, 可正可负, 其范围为-128~+127。

第 一 (4) 相对寻址: 节 如:执行指令SJMP 54H,是将PC当前的内容 指 与54H相加,结果再送回到PC中,成为下一条将 令 要执行指令的地址。设指令SJMP 54H的机器 格 码为80H54H存放在2000H处,当执行到该指令 时,先从2000H和2001H单元取出指令,PC自动变 式 成2002H,再把PC的内容加上54H,形成目标地 与 址2056H,送回PC,使程序跳转到2056H 寻 单元继续执行。 址 方 式

第3章 MCS-51单片机指令系统

第 一 节 指 令 格 式 与 寻 址 方 式

第3章 MCS-51单片机指令系统
(7) 位寻址:
指按照位进行的寻址操作,(前面讲 的都是按字节进行的寻址操作)。该种寻 址方式中, 操作数是内部RAM单元中20H到 2FH的128个位地址以及SFR中的11个 可进行位寻址的寄存器中的位地址寻址。 比如:MOV C,20H;就是将RAM中位寻址 区中20H位地址中的内容送给C。区别与MOV A,20H;这个是将内部RAM中20H单元的内 容送给A。

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
3.2数据传送指令

程序中使用最多的指令,主要用于内部RAM、 寄存器、外部RAM以及程序存储器之间的数据 传送、保存以及交换。 工作原理:将源操作数简单地传给目的 操作数,而源操作数的内容不变,PSW的内容 不改变。 分类:内部数据传送指令、外部传送指 令、查表指令、交换指令和堆栈指令。

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
1、内部数据传送指令
1、内部数据传送指令(16条) 内部8位数据传送指令共15条,主要用 于MCS-51

第 (1) 将数据传送到累加器A的指令(4条) 二 节 例:已知累加器A的内容为30H,寄存器R0的内容 数 为50H,内部RAM30H单元的内容为40H,内部 据 RAM50H单元的内容为10H,请指出下列每条指令 传 执行以后相应单元内容的变化. 送 指 令 解:指 令 相应操作 A中的结果
MOV MOV MOV MOV A, #20H A, 30H A, R0 A, @R0 A A A A #20H (30H) (R0) (50H) 20H 40H 50H 10H

第3章 MCS-51单片机指令系统

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
(2)将数据传送到工作寄存器Rn的指令(3条)
这里源操作数不能进行寄存器间接寻址, 也就是MOV Rn , @Rn 这个指令是不能用 的。

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
(2)将数据传送到工作寄存器Rn的指令(3条) 例:已知累加器A的内容为30H,寄存器R7的内容 为50H,内部RAM30H单元的内容为40H,内部 RAM50H单元的内容为10H,请指出下列每条指令 执行以后相应单元内容的变化.

解: 执行指令:MOV R7,A MOV R7,#40H MOV R7,50H

结果:R7=30H R7=40H R7=10H

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统 (3)将8位数据直接传送到直接地址(内部RAM单元或SFR寄存
器)指令(5条)

例:R0=50H,(50H)=10H,指令 MOV 35H,@R0 执行以后,(35H)=10H。这一操作也可用 指令MOV 35H,50H

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
(4)将8位数据传送到以间接寄存器寻址的RAM单元的 指令(3条)。

注意:这里的i只能是0或者1

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
(4)将8位数据传送到以间接寄存器寻址的RAM单元的 指令(3条)。

例:已知相应单元的内容如下表所示,请指出 下列指令执行后各单元内容相应的变化。

解:

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
(5)16位数据传送指令(1条)

将高8位数据送入DPH,低8位数据送入DPL中。

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
2、外部传送指令
当CPU与外部数据存储器进行数据传送 时,所用的指令为外部传送指令。(16位 地址编码) 通过累加器A来完成。采用寄存器间接 寻址方式,而间接寻址的寄存器为R0、R1 和DPTR。其中R0、R1为8位寄存器,访 问的时候实际地址为(P2Ri,其中P2为高 8位地址,Ri为低8位地址)。 注意:此类传送指令结果通常影响程序状 态字PSW的P位。

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
2、外部传送指令

如:DPTR=2000H,外部RAM中(2000H)=18H, 指令MOVX A , @DPTR执行以后,A=18H。

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
2、外部传送指令
比如说:将外部数据存储器2040H中的数据传 送到外部数据存储器2560H中。

解: MOV DPTR, #2040H MOVX A,@DPTR MOV DPTR,#2560H MOVX @DPTR,A

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
3、查表指令
程序存储器除了存放程序以外,还可以存 放表格常数。找出表格中所需的常数,所 用的指令为查表指令。

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
3、查表指令
第一条指令为远查表指令,可以在64K的程序 存储器空间寻址。基地址寄存器为DPTR,其意 思为,DPTR里面存放的是程序存储器中数据表 格的首地址,A为数据地址的偏移量。 这条指令执行以后,以 (A)+(DPTR) 的数值为地址数据就送进A里面来了,也就是 从表格首地址开始以后的第(A)个数据被送 进A了。(举例子说明) 第二条指令为近查表指令,查表范围为超 标指令后256B的地址空间。基地址为PC,查表 的地址为(A)+(PC),其中,(PC)为程序计数器 的当前内容,即查表指令的地址再加1。

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
(1)半字节交换指令
第一条指令(SWAP A),为类加器低4位与 高4位交换指令。 比如:A=35H, 指令SWAP A执行后,A=53H 第二条指令(XCHD A,@Ri),为内部RAM单 元低4位内容与类加器低4位内容交换指令。 比如:A=80H,R0=32H,(32H)=FFH,指令XCHD A,@R0执行以后,A=8FH,(32H)=F0H。

4、交换指令

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
(2)字节交换指令(8位数据进行互换) 如:A=80H, R7=45H,指令XCH A, R7执 行以后,A=45H,R7=80H A=60H,R0=25H,(25H)=23H,指令 XCH A,@R0执行后,A=23H,(25H)=60H

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
5、堆栈操作指令
(1)堆栈是用户自己设定的内部RAM中的一块专 用存储区,使用时一定要先设堆栈指针,堆栈指针 缺省为SP=07H。 (2)堆栈操作必须是字节操作,且只能直接寻 址。将累加器A入栈、出栈指令可以写成:PUSH ACC和POP ACC而不能写成PUSH A和POP A

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
5、堆栈操作指令
设堆栈指针为30H,将累加器A和DPTR中的内容 压入,然后根据需要再将它们弹出,编写实现 该功能的程序段。
解:
MOV SP,#30H PUSH ACC PUSH DPH PUSH DPL 。。。。 POP POP POP DPL DPH ACC ;(SP) ;(SP) ;(SP) DPL,SP-1 DPH,SP-1 ACC,SP-1 SP,SP=32H SP,SP=31H SP,SP=30H ;设臵堆栈指针,SP=30H为栈底地址 ;SP+1 SP,SP=31H,ACC (SP) ;SP+1 SP,SP=32H,DPH (SP) ;SP+1 SP,SP=33H,DPL (SP)

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
综合运用:把片内RAM中50H单元中的内容与 40H地址单元中的内容互换. 解: 方法一(直接地址传送法) MOV A,50H MOV B,A MOV A,40H MOV 50H,A MOV A,B MOV 40H,A SJMP $

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
综合运用:把片内RAM中50H单元中的内容与 40H地址单元中的内容互换. 解: 方法二(间接地址传送) MOV R0,#40H MOV R1,#50H MOV A,@R0 MOV B,@R1 MOV @R1,A MOV @R0,B SJMP $

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
综合运用:把片内RAM中50H单元中的内容与 40H地址单元中的内容互换. 解: 方法三(直接地址间传送法) MOV R7,50H MOV 50H,40H MOV 40H,R7 SJMP $ 方法四(字节交换传送法) MOV A,50H XCH A,40H MOV 50H,A SJMP $

第 二 节 数 据 传 送 指 令

第3章 MCS-51单片机指令系统
综合运用:把片内RAM中50H单元中的内容与 40H地址单元中的内容互换. 解: 方法五(堆栈传送法) PUSH 50H PUSH 40H POP 50H POP 40H SJMP $

第 三 节 算 术 运 算 指 令

第3章 MCS-51单片机指令系统
3.3算术运算指令
算术运算类指令是单片机能完成算术运算操 作的指令。包括加、减、乘、除,以及BCD码 调整指令等。 1、加法指令

第 三 节 算 术 运 算 指 令

第3章 MCS-51单片机指令系统
1、加法指令

加法指令是将源操作数内容与累加器A相加, 结果存入A中。 注意:此类指令都影响程序状态字寄存器PSW 的CY、OV、AC和P。这些指令在执行过程中 不需要考虑进位,也就是进位位Cy上有没有 数,对这次运算不影响。
如:完成0A4H+27H运算,把运算结果放到内部 RAM的40单元里面。 MOV A,#0A4H ADD A,#27H MOV 40H,A 指令执行以后, CY=0,OV=0,AC=0和P=0

第 三 节 算 术 运 算 指 令

第3章 MCS-51单片机指令系统
2、带进位位的加法指令 将源操作数的内容与累加器A相加,再加上 进位位Cy的内容,将结果存放在累加器A中。
与ADD的区别是需要把Cy中的内容加进去。

第 三 节 算 术 运 算 指 令

第3章 MCS-51单片机指令系统
2、带进位位的加法指令 如:编写程序,完成12A4H+0EE7H的运算,将结果 存入内部RAM的41H和40H单元内,高8位放在41H中, 低8位放在40H中。(设初始状态Cy=0)

解: MOV ADD MOV MOV ADDC MOV

A,#0A4H A,#0E7H 40H,A A,#12H A,#0FH 41H,A

第 三 节 算 术 运 算 指 令

第3章 MCS-51单片机指令系统
3、带借位的减法指令
将累加器A 中的内容减去源操作数的内容,再减 去进位位Cy的内容(CY中保留着低位字节向高位 字节的借位),其结果存放在A 中。

如:A=38H,R1=20H,(20H)=23H,C=1,
指令SUBB A,@R1执行以后A=14H.

第 三 节 算 术 运 算 指 令

第3章 MCS-51单片机指令系统
4、乘法、除法 乘法和除法均指无符号数运算。也就是最高 位不是符号位。

第 三 节 算 术 运 算 指 令

第3章 MCS-51单片机指令系统
(1)乘法
A,B中各放一个8位乘数,指令执行后,16位积 的高位放在B中,低位放在A中。运算结果影响 PSW中的Cy、OV和P。如果积大于255,则溢出 标志位OV臵“1”,否则OV清零;P仍然由累加 器A中1的奇偶性决定;进位标志Cy总是为”0”. 如:实现0A0H和08H的乘法指令 MOV A,#0A0H MOV B,#08H MUL AB 结果为(A)=00H,(B)=05H,

P=0,Cy=0,OV=1

第 三 节 算 术 运 算 指 令

第3章 MCS-51单片机指令系统
(2)除法
A中放一个8位被除整数,B中放的是一个8位 整数除数,指令执行后,所得到的商的整数部 分存于A中,余数部分存放在B中。运算结果影 响PSW中的Cy、OV和P。溢出标志位OV臵“0” , 当除数为0时,结果产生溢出,此时OV=1。P仍 然由累加器A中1的奇偶性决定;进位标志Cy总 是为”0”. 如:实现0AEH除以08H的指令 MOV A,#0AEH MOV B,#08H DIV AB 结果是: (A)=5H,(B)=06H,Cy=0,OV=0,P=1, AC不变

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
3.4逻辑运算与移位指令
逻辑运算主要包括:”与”、”或”、”异 或”、求反和清零、循环移位共24条指令。
1、“与”操作

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
1、“与”操作

注意: 1、“与”运算一般用于将字节中指定的位清 零,而其他位不变。 比如:11101101若要将其高四位清零,只要 将这个数据和00001111与一下就可以了,这 样低四位是不变的。 2、”与”运算是将源操作单元的内容与目的 操作单元的内容相与运算后,将结果存放在 目的操作单元中,而源操作单元中的内容不 变。

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
1、“与”操作 例:将累加器A中的压缩BCD码变成非压缩的 BCD码,存入40H、41H单元中。 MOV 30H, A ANL A, #00001111B ;清高 4位,保留低4位 MOV 40H, A ;低位BCD码放入40H中 MOV A, 30H ANL A, #11110000B ;清低 4位,保留高4位 SWAP A ;高四位和低四位进行互换 MOV 41H, A END

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
2、“或”运算指令

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
2、“或”运算指令

注意: 1、“或”运算一般用于将字节中指定的位臵 1,而其他位不变。 比如:10000001若要将其第四位臵1 ,只要 将这个数据和00001000或一下就可以了,这 样其他位是不变的。 2、”或”运算是将源操作单元的内容与目的 操作单元的内容相或运算后,将结果存放在 目的操作单元中,而源操作单元中的内容不 变。

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
2、“或”运算指令 如:将累加器A中的高4位由P1口的高4位输出, P1口的低4位不变。 ANL A,#11110000B;保留A中的高四位 MOV 40H,A MOV A,P1 ANL A,#00001111B;保留P1口读进来的 低四位,其中高四位变成了0000 ORG A,40H;40的高四位和A中的高四位 0000相或后保持不变。 A中的低四位和40中的低 四位0000相或也不变,此时,A中的数据就变成 了原来A的高四和P1的低四位 MOV P1,A END

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
3逻辑异或运算指令

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
3 、逻辑异或运算指令

注意: 1、“异或”运算可以对某存储单元中数据进 行变换,完成其中某些位取反,而其他位不变。 2、还可以用于判别两操作数是否相等,若相 等,结果全为0,否则不全为0。

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
4 、累加器清零取反指令

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
4 、累加器清零取反指令
综合实例:把在R4和R5中的两字节数取补(高 位在R4中) CLR MOV CPL INC MOV MOV CPL ADDC MOV SJMP C A,R5 A A R5,A A,R4 A A,#00H

R4,A $

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
5、循环移位指令

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
5、循环移位指令
RL A ;其作用为将A内的内容循环左移

RR A ;其作用为将A内的内容循环右移

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
5、循环移位指令
RLC A;指令的功能分别是将累加器A的内容带 进位位Cy循环左移。

RRC A;指令的功能分别是将累加器A的内容带 进位位Cy循环右移。

第 四 节 逻 辑 运 算 与 移 位 指 令

第3章 MCS-51单片机指令系统
5、循环移位指令
例1、假设(A)=00111010B=3AH,(Cy)=0 执行指令:RLC A 指令执行后:(A)=01110100B=74H 从这个例题也可以看出,带进位循环左移指令可以 实现乘以2的功能

例2、假设(A)=01111011B=7BH,(Cy)=0 执行指令:RRC A 指令执行后:(A)=00111010B=3DH
从这个例题也可以看出,带进位循环左移指令可以 实现除以2的功能

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
3.5控制转移指令(22条)
控制转移指令用于控制程序的执行方向.这类 指令通过修改PC的内容来控制程序走向,MCS51单片机具有丰富的控制转移指令,包括无条 件转移指令、条件转移指令、循环转移指令、 比较转移指令、循环转移指令、子程序调用与 返回指令和空操作指令。

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
1、无条件转移指令(4条)

1、无条件转移指令(4条) LJMP addr16 AJMP addr11 SJMP rel JMP @A+DPTR 当单片机执行这些指令的时候,会无条件的 转移到对应的地址中去继续执行程序。

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
(1)LJMP (2)AJMP
(1)LJMP addr16 (长转移指令) 此类指令是以16位地址为转移的目标地址。它将16位目 标地址装入程序计数器PC使程序执行此指令后,无条件 转移到addr16处执行。长转移指令也可在64K范围内转移。 (2)AJMP addr11(绝对转移指令或短跳) a、这条指令为2字节指令,其中AJMP的机器码为 … 00001,是个5位数据,和后面的11位地址共同组成了16位 的机器语言指令。 b、指令的操作:是将11位的目标地址addr11装入PC 的低11位。 c、要求转移的目标地址必须和AJMP后面一条指令的 第一字节地址位于程序存储器的同一段2K字节范围内。 看的方法:目标地址的高5位与PC+2后PC中的高5位相同

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
(1)LJMP (2)AJMP

例:分析以下指令执行后PC的值 KWR:AJMP KWR1 假设KWR标号的地址为1030H,KWR1标号的地址 在1100H,其意思是要跳到KWR1(1100)处去 执行程序,那么到底这个地址能不能跳得到

验证: (1)这条指令被CPU取走以后,PC的值是1030H+2=1032H, (因为它是个2字节指令)也就是PC指在AJMP后面的那条指令 的首地址上 (2)这条指令执行完了以后,CPU知道是要跳了,然后就开 始寻找跳的位臵,目的地址由1032的高5位和KWR1所在地址 1100的低11位组成,也就是0001000100000000=1100H,说明符 合要求

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
(1)LJMP (2)AJMP

例:分析以下指令执行后PC的值 KWR:AJMP KWR1 假设KWR标号的地址为1030H,KWR1标号的地址 在1100H,其意思是要跳到KWR1(1100)处去 执行程序,那么到底这个地址能不能跳得到
我们人为验证的时候只要看一下,1032的高5位和 1100的高5位一致不一致,如果一致说明程序肯定 能执行的。 不一致就不行,比如1032和1800就不在同一段2K之 内了。 所以要使用AJMP这条指令的话,要跳的目的程序不 能离得太远。

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
(3)SJMP rel(相对转移指令,为2字节指令)

8位地址rel是相对当前PC的跳转偏移量,在编程序 的时候往往用符号代替相对地址。 比如:为单片机写停机指令的时候,若要动态 … 停机(原地循环等待)可以用SJMP指令来实现; 动态停机指令:LP1:SJMP LP1 或者写成SJMP $

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
(4)JMP @A+DPTR(间接转移指令) 转移目标地址由数据指针DPTR和A相加而得。指令的 执行不影响累加器A和数据指令DPTR。该指令的特点 是转移地址可以在程序运行中加以改变。根据A的不 … 同值可以实现多分支转移,因此一条指令可以完成多 分支转移的功能。该功能称为散转功能,因此这条指 令有称散转指令。 例: MOV JMP TABLE:AJMP AJMP AJMP DPTR #TABLE @A+DPTR ROUT0 ROUT1 ROUT2

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
2、条件转移指令(2条)

JZ JNZ
(1)JZ

rel rel
rel(累加器为0转移,二字节指令)

执行指令时先对累加器A 的内容进行判 断。当累加器A 的内容为0时,转移至 相对当前PC为rel的目标地址上,也就 是PC的值变成了PC+2+rel,否则程序顺 序执行。

要掌握:转移的目标地址要会算;该指 令用于判断

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
(1)JZ rel(累加器为0转移,二字节指令)

例:将外部RAM的一个数据块(首址为0101H) 传送到内部RAM(首址为50H以后的单元),遇 到传送的数据为零时停止
START:MOV R0, #50H ;臵内部RAM数据指针 MOV DPTR,#0101H ;臵外部RAM数据指针 LOOP1:MOVX A, @DPTR ;外部RAM单元内容送A JZ LOOP2 ;判传送数据是否为零,A为零则转移 MOV @R0, A ;传送数据不为零,送内部RAM INC R0 ;修改地址指针 INC DPTR SJMP LOOP1 ;继续传送 LOOP2:RET ;结束传送,返回主程序

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
(2)JNZ rel(累加器不为0转移,二字节指令)

执行指令时先对累加器A 的内容进行判 断。当累加器A 的内容不为0时,转移 至相对当前PC为rel的目标地址上,也 就是PC的值变成了PC+2+rel,否则程序 顺序执行。

以上的rel均用符号来表示

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
(3)、比较转移指令(4条,三字节指令) CJNE CJNE CJNE CJNE A, #data, rel A, direct, rel Rn, #data, rel @Ri, #data, rel

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
3、子程序调用与返回指令(4条)

ACALL LCALL RET RETI

addr11 addr16

在程序中使用子程序的目的是把重复 的程序段编写为一个子程序,通过主 程序调用而使用它。(比如延时程序, 一个程序中可能很多地方要用到), 减少了编程工作量,缩短了程序的长 度。

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
3、子程序调用与返回指令(4条) 调用指令在主程序中使用,而返回指令则 应该是子程序的最后一条指令。执行完这 条指令之后,程序返回主程序断点处继续 执行。如图所示。(和中断有区别)

第 五 节 控 制 转 移 指 令

第3章 MCS-51单片机指令系统
4、空操作指令NOP

该指令不进行任何操作。执行空操 作的时候, PC自动加1指向下一条指 令,占用CPU一个机器周期的时间。 用NOP指令常进行等待,延时。

第 六 节 位 操 作 指 令

第3章 MCS-51单片机指令系统
3.6位操作指令

单片机内部有位累加器Cy,内部数据存储器 中的128位位地址,11个有位寻址功能的特殊 寄存器,以及17条位操作指令,这些部件构成 了单片机的布而处理机。对这些部件的操作均 可以采用位操作指令。
可以采用四种寻址方式: (1)直接地址方式,比如90 (2)利用特殊功能寄存器名的位地址方式,如P1.0 (3)利用特殊功能寄存器的位名称方式,如TE0 (4)用户使用伪指令事先定义过的符号地址。

第 六 节 位 操 作 指 令

第3章 MCS-51单片机指令系统
1、位赋值指令 前两条指令为位清零指令。分别对Cy和直接 位地址进行清零操作。后两条指令为位臵1指 令,分别对Cy和直接地址进行臵1操作。

第 六 节 位 操 作 指 令

第3章 MCS-51单片机指令系统
2、位传送指令 位传送指令是实现位累加器C与位bit之间的位 数据双向传送。

第 六 节 位 操 作 指 令

第3章 MCS-51单片机指令系统
2、位传送指令 注意:对于MOV bit, C这条指令,当 bit 为P0-P3中的某一位的时候,指令的执行是先把 端口的全部内容(8位)读入,然后把Cy的内容 传送到指令位,最后把8位数据一起再传送到端 口。因此,它的操作为“读-改-写”指令。 比如:P1口现在的数据为11100111,现在要求把 P1.1的内容送给P1.4 MOV C,P1.1 MOV P1.4,C 执行的过程为将P1.1的内容先给C,第二条指令 先把P1口的内容全部读入片内某单元,再将C的 内容给该单元中的对应与P1.4的位臵,然后再把 这个数据从该单元送到P1口。

第 六 节 位 操 作 指 令

第3章 MCS-51单片机指令系统
3、位运算指令

第 六 节 位 操 作 指 令

第3章 MCS-51单片机指令系统
3、位运算指令

前两条指令是位逻辑与指令,第一条的意思是 将位地址中的内容与位累加器Cy中的内容相与, 结果存放在 Cy中。第二条指令将位地址中的内 容取反,与Cy中的内容相与,结果存放在Cy中。 第三、四条指令是位逻辑或指令,第三条 指令将位地址中的内容与位累加器Cy中的内容相 或,结果存放在Cy中。第四条指令将位地址中的 内容取反,与Cy中的内容想或,结果存放在Cy中。 最后两条指令是位逻辑取反指令,分别对 Cy及直接位地址中的内容进行取反操作运算,结 果存放在Cy和 位地址中。


相关文章:
第三章MCS-51单片机指令系统习题含答案
第三章MCS-51单片机指令系统习题含答案_其它_职业教育_教育专区。MCS-51单片机第三章习题及答案 第三章 MCS-51 单片机指令系统习题含答案 3.1 判断下列说法是否...
第3章 MCS-51单片机指令系统总结
第3章 MCS-51单片机指令系统总结_电子/电路_工程科技_专业资料。第3章 MCS-51单片机指令系统总结,主要是对汇编语言复杂指令的归类和整理。...
第3章MCS-51单片机指令系统
MCS第 3 章 MCS-51 单片机指令系统本章要点 ·80C51 指令的基本格式 ·80C51 指令功能分类 ·指令系统中的常用符号 ·80C51 指令系统的七种寻址方式 ·数据传送...
第三章 MCS-51单片机指令系统
单片机单片机隐藏>> 第三章 3.1 指令格式 MCS-51 单片机指令系统 每一种系列的单片机都有自己的指令系统。因为单片机主要应用于测控领 域,所以它的指令系统也具有...
第三章MCS51单片机的指令系统和汇编语言程序示例(第5
第三章 MCS51 单片机指令系统和汇编语言程序示例(第 5、6、7 节) 1. 试分析单片机执行下列指令后累加器 A 和 PSW 中各标志位的变化状况? (1)MOV A,#...
51系列单片机指令系统
第3章 MCS-51系列单片机指... 96页 免费喜欢此文档的还喜欢 80c51单片机指令系统 41页 5财富值 MCS-51指令系统概述 暂无评价 12页 免费如要投诉违规内容,请到...
MCS51单片机指令系统练习
MCS51单片机指令系统练习_工学_高等教育_教育专区。思考题与习题部分参考答案 第二章 MCS51 单片机指令系统 与汇编语言程序设计 1. 8051 单片机的指令系统有何特点...
51单片机指令系统练习题
MCS51 单片机指令系统及程序设计一、判断题 ()1.MCS—51 单片机的指令格式中操作码与操作数之间必须用“,”分隔。 ()2.MCS—51 指令:MOV A,#40H ;表示...
MCS-51单片机指令系统
MCS-51单片机指令系统包括... 63页 免费喜欢此文档的还喜欢 第3章 MCS-51的指令系统 41页 免费 51单片机基础教程 45页 免费 MCS-51汇编语言指令集 10页 免费...
单元3 MCS-51单片机指令系统(1)
单元 MCS-51 单片机指令系统一、学习目标与要求 1、了解 MCS-51 单片机的寻址方式、指令结构及指令长度、指令周期等概念。 2、了解 MCS-51 单片机指令系统结构...
更多相关标签:
mcs51指令系统 | mcs51系列单片机 | mcs51系列单片机原理 | mcs51系列单片机教程 | mcs51指令集 | mcs51汇编语言指令集 | 单片机指令系统 | 单片机的指令系统 |