产品概述

51单片机汇编程序 51单片机主要汇编指令集

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

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 。

【干货】51单片机汇编指令合集介绍

51单片机汇编指令合集介绍一

一、数据传送类指令

MOV A, Rn 寄存器送累加器

MOV Rn,A 累加器送寄存器

MOV A ,@Ri 内部RAM单元送累加器

MOV @Ri ,A 累加器送内部RAM单元

MOV A ,#da ta 立即数送累加器

MOV A ,direct 直接寻址单元送累加器

MOV direct ,A 累加器送直接寻址单元

MOV Rn,#da ta 立即数送寄存器

MOV direct ,#da ta 立即数送直接寻址单元

MOV @Ri ,#da ta 立即数送内部RAM单元

MOV direct ,Rn 寄存器送直接寻址单元

MOV Rn ,direct 直接寻址单元送寄存器

MOV direct ,@Ri 内部RAM单元送直接寻址单元

MOV @Ri ,direct 直接寻址单元送内部RAM单元

MOV direct2,direct1 直接寻址单元送直接寻址单元

MOV DPTR ,#da ta16 16位立即数送数据指针

MOVX A ,@Ri 外部RAM单元送累加器(8位地址)

MOVX @Ri ,A 累加器送外部RAM单元(8位地址)

MOVX A ,@DPTR 外部RAM单元送累加器(16位地址)

MOVX @DPTR ,A 累加器送外部RAM单元(16位地址)

MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址)

MOVC A ,@A+PC 查表数据送累加器(PC为基址)

XCH A ,Rn 累加器与寄存器交换

XCH A ,@Ri 累加器与内部RAM单元交换

XCHD A ,direct 累加器与直接寻址单元交换

XCHD A ,@Ri 累加器与内部RAM单元低4位交换

SWAP A 累加器高4位与低4位交换

POP direct 栈顶弹出指令直接寻址单元

PUSH direct 直接寻址单元压入栈顶

二、算术运算类指令

ADD A, Rn 累加器加寄存器

ADD A, @Ri 累加器加内部RAM单元

ADD A, direct 累加器加直接寻址单元

ADD A, #da ta 累加器加立即数

ADDC A, Rn 累加器加寄存器和进位标志

ADDC A, @Ri 累加器加内部RAM单元和进位标志

ADDC A, #da ta 累加器加立即数和进位标志

ADDC A, direct 累加器加直接寻址单元和进位标志

INC A 累加器加1

INC Rn 寄存器加1

INC direct 直接寻址单元加1

INC @Ri 内部RAM单元加1

INC DPTR 数据指针加1

DA A 十进制调整

SUBB A, Rn 累加器减寄存器和进位标志

SUBB A, @Ri 累加器减内部RAM单元和进位标志

SUBB A, #da ta 累加器减立即数和进位标志

SUBB A, direct 累加器减直接寻址单元和进位标志

DEC A 累加器减1

DEC Rn 寄存器减1

DEC @Ri 内部RAM单元减1

DEC direct 直接寻址单元减1

MUL AB 累加器乘寄存器B 1 4

DIV AB 累加器除以寄存器B 1 4

接下面

相关问答

51单片机 不能用 汇编 语言写吗?

51单片机能用汇编语言写程序,只是现在很少有人用,最重要的原因是汇编语言需要深入掌握单片机的指令集。汇编语言的优势很明显,程序的执行效率比其它高级语言...

51单片机 程序 是怎么制的?

51单片机程序是通过编写汇编语言或C语言代码来实现的。首先,需要了解51单片机的指令集和寄存器,以及外设的操作方式。然后,根据设计需求,编写相应的程序代码...

51单片机 编程时 汇编 和C语言如何结合?

C语言本身允许内联汇编,直接写C语言程序就可以。C语言和汇编本身结合的比较紧,多看看C语言编译器手册,上面一般都有怎么和汇编混合。写内联汇编要注意C编译器...

51单片机汇编 语言中PC什么意思?

汇编中的PC指programcounter(程序计数器)。程序计数器是用于存放下一条指令所在单元的地址的地方。计算机中提供要从存储器中取出的下一个指令地址的寄存器,...

51单片机汇编 语言的ifelse如何实现?

51单片机汇编语言的ifele语句实现如下:if语句由关键字“if”开始,后面跟随一个逻辑表达式。if语句根据该逻辑表达式的值来决定哪些语句会被执行。if语句可以...

单片机汇编 指令ACALL怎么用?

ACALL是51汇编的子程序调用指令,其使用范围是±2K范围,超出这个范围的调用将会出错,这时可以使用LCALL即长调用语句。调用格式如下:ACALL标号(子程序名)例...

用C语言写 51单片机 闹钟 程序 - 156****1626 的回答 - 懂得

汇编做的可以不.有秒表.有闹钟.//*********************************************************//实现2113功能:本程序实现在P1口模拟一个...

STC 单片机 能用 汇编 程序 吗?指令和C 51 有什么区别?

当然可以用和汇编语言写。其实STC就是51内核的单片机。指令系统当然和c51单片机兼容的。不过有的STC的外设比标准的C51丰富,比如有的STC有P4口,普通的C51就没...

51单片机 ,stm32,arduino都是用什么语言进行编程的?

51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程。51单片机的编程51单片机进入中国比较早,在...51...

51单片机 程序 语言有哪几类?

51单片机的程序语言有汇编语言和C语言。汇编语言是一种面向机器的编程语言,能直接操作单片机的硬件系统,如存储器、I/O端口、定时/计数器等。优点:指令效率...

猜你喜欢