产品概述

单片机指令大全 跟电师傅学单片机(13):单片机算术运算类指令图文讲解

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

跟电师傅学单片机(13):单片机算术运算类指令图文讲解

一:加一减一指令(共9条)

单片机加一减一指令表

1、INC:单片机加1指令(共5条),主要用于修改地址指针和计数次数,只有一个操作数。

指令功能:是将操作数所确定的单元或寄存器中的内容加1,最后将结果还是送回原操作数单元中。

操作数:累加器A、寄存器Rn、直接地址direct、寄存器间接寻址单元、数据指针寄存器DPTR中的内容。

2、DEC:单片机减1指令(共4条),只有一个操作数,与INC指令类似。

指令功能:是将操作数所确定的单元或寄存器中的内容减1,最后将结果还是送回原操作数单元中。

操作数:累加器A、寄存器Rn、直接地址direct、寄存器间接寻址单元中的内容。

二:十进制调整指令(1条)

DA A

单片机十进制调整指令,功能是在进行BCD码加法运算时,用来对BCD码的加法运算结果自动进行修正,修正结果存放在A中。

BCD码:是二进码十进数或二-十进制代码,用4位二进制数来表示1位十进制数中的0~9这10个数码。

注意:

1:在进行BCD加法运算时,在单片机加法指令ADD或ADDC指令后紧跟着DA A指令,单片机自动判断和修正。

2:对BCD码的减法运算时不能用DA A指令不进行修正,不适用减法指令。

3:影响PSW中CY、AC、OV标志位。(请看下图:标志寄存器PSW功能图)

三:乘法指令(1条)

MUL AB

单片机乘法指令,功能是实现2个8位无符号数的乘法运算,相乘的2个数分别存放在累加器A中和寄存器B中,乘积结果为16位:低8位存放在A中,高8位存放在B中。

注意:

1:乘数和被乘数可以交换。

2:乘积结果大于255,PSW中的溢出标志位OV置1,否则为0 。

单片机标志寄存器PSW功能图

单片机指令举例:

02H和04H的乘法运算

MOV A,#02H

MOV B,#04H

MUL AB

执行指令结果:

A:08H

B:00H

OV:0

四:除法指令(1条)

DIV AB

单片机除法指令,功能是实现2个8位无符号数的除法运算,被除数放在累加器A中,除数放在寄存器B中。相除结果:商放在A中,余数放在B中。

注意:

单片机除法指令也影响PSW中CY和OV标志位,相除之后CY和OV均为0。(请看上图:标志寄存器PSW功能图)

单片机指令举例:

22和4的除法运算

MOV A,#22

MOV B,#04

MUL AB

执行指令结果:

A:05H

B:02H

CY:0

OV:0

单片机乘除法指令

到此为止,24条单片机算术运算类指令讲解完毕,谢谢阅读!欢迎留言讨论,共同提高!

51单片机主要汇编指令集

1)数据传送类指令(7种助记符)

MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;

MOVC(Move Code)读取程序存储器数据表格的数据传送;

MOVX (Move External RAM) 对外部RAM的数据传送;

XCH (Exchange) 字节交换;

XCHD (Exchange low-order Digit) 低半字节交换;

PUSH (Push onto Stack) 入栈;

POP (Pop from Stack) 出栈;

(2)算术运算类指令(8种助记符)

ADD(Addition) 加法;

ADDC(Add with Carry) 带进位加法;

SUBB(Subtract with Borrow) 带借位减法;

DA(Decimal Adjust) 十进制调整;

INC(Increment) 加1;

DEC(Decrement) 减1;

MUL(Multiplication、Multiply) 乘法;

DIV(Division、Divide) 除法;

(3)逻辑运算类指令(10种助记符)

ANL(AND Logic) 逻辑与;

ORL(OR Logic) 逻辑或;

XRL(Exclusive-OR Logic) 逻辑异或;

CLR(Clear) 清零;

CPL(Complement) 取反;

RL(Rotate left) 循环左移;

RLC(Rotate Left throught the Carry flag) 带进位循环左移;

RR(Rotate Right) 循环右移;

RRC (Rotate Right throught the Carry flag) 带进位循环右移;

SWAP (Swap) 低4位与高4位交换;

(4)控制转移类指令(17种助记符)

ACALL(Absolute subroutine Call)子程序绝对调用;

LCALL(Long subroutine Call)子程序长调用;

RET(Return from subroutine)子程序返回;

RETI(Return from Interruption)中断返回;

SJMP(Short Jump)短转移;

AJMP(Absolute Jump)绝对转移;

LJMP(Long Jump)长转移;

CJNE (Compare Jump if Not Equal)比较不相等则转移;

DJNZ (Decrement Jump if Not Zero)减1后不为0则转移;

JZ (Jump if Zero)结果为0则转移;

JNZ (Jump if Not Zero) 结果不为0则转移;

JC (Jump if the Carry flag is set)有进位则转移;

JNC (Jump if Not Carry)无进位则转移;

JB (Jump if the Bit is set)位为1则转移;

JNB (Jump if the Bit is Not set) 位为0则转移;

JBC(Jump if the Bit is set and Clear the bit) 位为1则转移,并清除该位;

NOP (No Operation) 空操作;

(5)位操作指令(1种助记符)

SETB(Set Bit) 位 置1 。

相关问答

单片机 填空求助1.MCS-51系列单片机为()位单片机.2.8051单片...

[最佳回答]1.MCS-51系列单片机为(8)位单片机.2.8051单片机有两种复位方式,既上电复位和手动复位.复位后SP=(07H),PC=(0000H),PSW=(00H),P0=(F...

单片机指令 JNB字母各代表什么意思?

1.这是51单片机的一条汇编语言指令,其中J代表"跳转JUMP",N代表"非NO",B代表"位BIT";2.如果TF0为0,那就跳转到...

单片机 执行 指令 的三个阶段-牌子网

下面分别说说单片机执行指令的三个阶段。1、取指令阶段根据程序计数器PC的值,从程序存储器读出当前要执行的指令,并将该指令送到指令寄存器。2、指...

单片机指令 周期的计算?

如果单片机是12周期的话,那么机器周期就是T×12。假设晶振频率为12M,单片机为12周期的话,那么机器周期就是1us。3、指令周期置零周期是时序中的最大时间...

单片机 指令 长度可以分为哪三类?

指令的定义指令是指挥计算机执行操作的命令,一条指令对应着一种操作。MCS-51指令系统使用44种助记符,它们代表33种功能,可以实现51种操作。指令助记符和操作...

单片机 next是什么 指令 ?

在单片机中,"next"不是一个指令。单片机的指令集由特定的芯片制造商定义,每个芯片都有自己的指令集。常见的单片机指令包括数据传输、算术运算、逻辑运算、跳...

单片机 里DJNZ代表什么啊?

cjne的意思是CompareJumpNotEqual比较不相等转移指令。参与比较的两个数,若不相等,则转移,若相等则程序顺序执行;利用这条指令,就可以判断两数是否相等...

单片机 中jc 指令 表示什么?有什么用?

JC是51单片机的专有指令,表示对进位位cy的判断,常跟在算术加减指令之后,用判断运行结果是否产生进位或借位,如果cy=1则按指令操作数给出的地址偏移量跳转。...

单片机 内取反 指令 是什么和什么两个?

CPLA;累加器取反指令CPLbit;位累加器取反指令如CPLP1.0CPLA;累加器取反指令CPLbit;位累加器取反指令如CPLP1.0

51 单片机 查表 指令 详解?

51单片机是一种常用的单片机型号,其指令集中有很多种不同的指令,其中就包括了查表指令。下面是关于51单片机查表指令的详细解释:查表指令是一种特殊的指令,...

猜你喜欢