产品概述

单片机rn 跟电师傅学单片机(17):单片机控制转移指令图文讲解2

小编 2024-10-07 产品概述 23 0

跟电师傅学单片机(17):单片机控制转移指令图文讲解2

上节介绍了单片机无条件转移指令 (4条),本节继续讲解单片机控制转移类指令。

下面介绍有条件转移指令 (8条):指令先判断后转移

有条件转移指令,也称为条件转移指令:是指令要满足一定条件才转移。满足条件时,程序转移到程序计数器PC当前值和指令给出的相对地址 rel偏移量相加后得到新的PC地址处执行;当条件不满足时,程序就顺序执行下一条指令。

条件转移指令共同特点:都是单片机相对转移指令,都有偏移量rel,都是相对转移转移范围较小。

注意:

rel偏移量范围:-128~+127字节内,即范围是256个单元。

因此条件转移指令的转移范围较小,如果要实现64K范围内的转移,可以用前面学习的长转移指令:LJMP addr16来实现。

指令判断转移示意图

一:累加器A判0转移指令(2条)

累加器A判0转移指令表

PC:是单片机程序计数器,程序从哪里执行,完全由程序计数器PC里的内容决定,始终是指定下一条将要执行指令的地址(是16位地址),单片机系统上电或复位时,PC的初始值为0000H。

PC⇐PC+rel;程序计数器PC中下一条指令的地址加1个偏移量(rel)构成一个新的地址再送到PC(新的PC地址),程序正常情况是接着执行下一条指令,但在这里因为改变了PC值,执行完这条指令后就转移到新的PC地址处执行

凡是转移指令,都是通过改变程序计数器PC值来实现指令转移功能。

JZ rel;

指令功能:累加器A=0 PC⇐PC+rel ;累加器A中的内容全为0,则程序转移到程序计数器PC当前值和指令给出的rel偏移量相加后得到新的PC地址处执行。

累加器A≠0 或 累加器A=1;程序顺序执行。

JNZ rel;

指令功能:累加器A≠0或累加器A=1 PC⇐PC+rel ;累加器A中的内容不全为0,则程序转移到PC当前值和指令给出的rel偏移量相加后得到新的PC地址处执行。

累加器A=0;程序顺序执行。

上面两条指令产生的转移条件分别是累加器A的内容为0和不为0

注意:

程序执行过程中,不改变累加器A中的内容 ,不影响单片机标志寄存器PSW中任何标志位。

二:减1非0转移指令(2条)

减1非0转移指令表

DJNZ Rn,rel;

指令功能:将寄存器Rn中的内容减1后,如果单片机寄存器Rn≠0,则程序转移到程序计数器PC当前值和指令给出的rel偏移量相加后得到新的PC地址处执行。

DJNZ direct,rel;

指令功能:将直接地址direct中的内容减1后,如果direct≠0,则程序转移到程序计数器PC当前值和指令给出的rel偏移量相加后得到新的PC地址处执行。

三:比较转移指令(4条)

比较转移指令表

CJNE A,#data,rel;

指令功能:将单片机累加器A中的内容与立即数data比较,如果不相等:A ≠ #data,则程序转移到程序计数器PC当前值和指令给出的rel偏移量相加后得到新的PC地址处执行。

CJNE Rn,#data,rel;

指令功能:将单片机寄存器Rn中的内容与立即数data比较,如果不相等:Rn ≠ #data,则程序转移到程序计数器PC当前值和指令给出的rel偏移量相加后得到新的PC地址处执行。

CJNE @Ri,#data,rel; Ri=R0 R1

指令功能:找到单片机寄存器Ri中存放的地址,根据这个地址找到里面的内容与立即数data比较,如果不相等:(Ri)≠#data,则程序转移到程序计数器PC当前值和指令给出的rel偏移量相加后得到新的PC地址处执行。

CJNE A,direct,rel;

指令功能:将单片机累加器A中的内容与直接地址direct里面的内容比较,如果不相等:A≠(direct),则程序转移到程序计数器PC当前值和指令给出的rel偏移量相加后得到新的PC地址处执行。

跟电师傅学单片机(12):单片机算术运算加减法指令图文新解

单片机算术运算类指令(24条)

算术运算指令是8位二进制数进行加、减、乘、除四则运算,以及加1、减1、十进制调整等。

本节介绍其中加减法12条指令。

加减法指令示意图

1:不带进位加法指令(4条)

ADD:不带进位标志CY的加法,功能是累加器A中的内容与源操作数所确定单元中的内容相加,其结果仍存在A中。

ADD A,Rn;属于寄存器寻址方式。指令功能是将寄存器Rn中的内容与累加器A中的内容相加,其结果送回A中。

ADD A,direct;属于直接寻址方式。指令功能是将直接地址direct中的内容与累加器A中的内容相加,其结果送回A中。

ADD A,@Rn;属于寄存器间接寻址方式。指令功能是将寄存器间接寻址单元中的内容与累加器A中的内容相加,其结果送回A中。

ADD A,#data;属于立即数寻址方式。指令功能是将立即数data与累加器A中的内容相加,其结果送回A中。

2:带进位加法指令(4条)

ADDC:带进位标志CY的加法,功能是累加器A中的内容与源操作数所确定单元中的内容相加,其结果仍存在A中。与ADD指令类似,不同之处是在执行加法时,还要将进位标志CY的内容一起加进去。

进位加法计算

标志寄存器PSW示意图

标志寄存器PSW功能图

CY:是标志寄存器PSW中的一个进位标志位。标志寄存器PSW也称程序状态字PSW,用于存放程序运行状态信息。

单片机系统上电或复位时,PSW初始值为00H。

3:减法指令(4条)

SUBB:带借位减法指令,与带进位加法指令类似,指令功能是把累加器A中的内容减去源操作数所确定单元中的内容和进位标志CY,其结果送回A中。

注意:在减法指令里面,只有带借位的减法,没有不带借位的减法,做减法运算时,如果是低8位时,必须把CY清零。

相关问答

单片机 所有指令的英文全称哪位大虾能告诉小弟 单片机 系统的所...

[最佳回答]MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等.这里先介绍指令助记符及其相关符号的记忆方法.一、...

51 单片机 寻址方式的特色?

1.51单片机的寻址方式具有特色。2.这是因为51单片机采用的是8位寻址方式,即通过8位地址来访问内部的存储单元。相比于其他寻址方式,8位寻址方式在编程和操作...

电阻并联是否可以增大功率而阻值不变?

对于这个问题我来谈谈我的看法,电阻是电路中十分常见的元件,几乎所有的电子电路板都会见到电阻这个元件,据不完全统计电阻在电子电路板中所占电子电路板总元件...

猜你喜欢