单片机之汇编指令系统
21ic整理 2022-05-24

MCS-51单片机指令系统按功能来分有五种.

数据传送指令:

MOV Rn,#data ;立即寻址,data→Rn

MOV A,@Ri ;间接寻址,((Ri))→A,i=0,1

MOV direct,Rn ;寄存器寻址,(Rn)→direct

MOV @Ri,A ;寄存器寻址,(A)→(Ri)

MOV DPTR,#data16 ;把16位立即数传送到数据指针DPTR,高8位送DPH,低八位送DPL.

(例:MOV DPTR,#1234H;DPTR=1234H,DPH=12H,DPL=34H.)

MOVC A,@A+PC ;((A)+(PC)→A)

MOVX @DPTR,A ;寄存器间接寻址,(A)→(DPTR)

PUSH direct ;直接寻址.(SP)+1→SP,(direct)→SP

POP direct ;直接寻址,((SP))→direct,(SP-1)→SP

XCH A,Rn ;(A)←→(Rn)交换

XCHD A,@Rn ;(A)0~3←→((Rn))0~3

SWAP A ;(A)0~3←→(A)4~7

算术运算指令

ADD A,@Ri ;(A)+(Ri)→A,不带进位加法

ADDC A,Ri ;(A)+(Ri)+Cy→A

SUBB A,#data ;(A)-data-Cy→A

INC direct ;(direct)+1→direct,加一指令

DEC @Ri ;((Ri))-1→(Ri)

DA A ;十进制调整指令

MUL AB ;把A,B两个8位无符号数相乘,其16位积的低八位存入A,高八位存入B

,如果积大于255(0FFH),则置位溢出标志OV,进位标志Cy总是清零.

DIV AB ;A除以B.所得数的整数部分放入A,余数部分放入B

如果B为0,则A,B结果不变,置位溢出标志OV,进位标志Cy总是清零.

逻辑运算指令:

CLR A ;(A)=0

CPL A ;/A→A

RL A ;左循环移位1

RR A ;右循环移位1

RLC A ;A与Cy左循环移位1

RRC A ;A与Cy右循环移位1

ANL 逻辑与操作指令

ORL 逻辑或操作指令

XRL 逻辑异或操作指令

位操作指令:

MOV C,bit ;(bit)→Cy

CLR 清零

CPL 取反

SETB 置1

ANL 与

ORL 或

JC rel ;若Cy=1,则(PC)+2+rel→PC,若Cy=0,则(PC)+2→PC

JNC rel ;若Cy=1,则(PC)+2→PC,若Cy=0,则(PC)+2+rel→PC

JB bit,rel ;若(bit)=1,则(PC)+3+rel→PC,若(bit)=0,则(PC)+2→PC

JNB 与上相反

JBC bit,rel ;若(bit)=1,则(PC)+3+rel→PC且置(bit)=0,若bit=0,则(PC)+2→PC

控制转移指令:

AJMP addr ;绝对跳转指令

SJMP rel ;相对跳转指令,(PC)+2+rel→PC

LJMP addr16 ;长跳转指令,addr16→PC

JMP @A+DPTR ;间接跳转指令

JZ rel ;判零跳转指令,(A)=1,则(PC)+2+rel→PC,若A!=0,则(PC)+2→PC

JNZ rel ;与上相反

CJNE A,direct,rel;比较不相等跳转指令.执行过程为:a.(A)=(direct),则(PC)+3→(PC),Cy=0

b.(A)>(direct),则(PC)+3+rel→(PC),Cy=0

c.(A)<(direct),则(PC)+3+rel→(PC),Cy=1

DJNZ Rn,rel ;减一不为零跳转指令 .执行过错为 a.(PC)+2→PC. b.(Rn)-1→direct c.若Rn!=0,则(PC)+rel→PC;若direct=0,则程序往下执行

ACALL addr ;短调用指令

LCALL addr ;长调用指令

RET ;从子程序返回指令

RETI ;从中断返回指令

NOP ;空操作指令

指令助记注释:

ADDC ---Add with Carry Flag

SUBB ---Subtract With Borrow

INC ---- Increment

DEC-------Decrement

MUL----Multiply

DIV----Divide

DA----Decimal Adjust

MOV----move

MOVX----move external RAM

MOVC----move code

XCH----Exchange

XCHD----Exchange low-order Digit

ANL----and logical

ORL----or logical

XRL----exclusive-or logical

CLR----clear

CPL----complement logical

RL----rotate left

RR---rotate right

ACALL----absolute subroutine call

LCALL----long subroutine call

RET----return from subroutine

RETI----return from interrupt

AJUMP----absolute jump

LJMP----long jump

SJMP----short jump

JZ----jump if accumulator is zero

JNZ----jump if not zero

JC----jump if carray flag is set

JB----jump if direct bit not set

CJNE----compare jmp if not equal

DJNZ----decrement jump if zero

NOP----no operation

扩展阅读:

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【7.24 深圳】2025国际AI+IoT生态发展大会/2025全球 MCU及嵌入式技术论坛


  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 3AT89C51单片机引脚说明及引脚图

    AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU...

    07-11
  • 51单片机对LCD1602液晶的驱动设计

    51单片机——LCD1602 1、1602液晶读写时序 (1)、读状态 RS=L,R/W=H,E=H。(判断忙完毕后释放总线) (2)、读数据 RS=H,R/W=H,E=H。 (3)、写指令 RS=L,R/W=L,D0~D7=指令码,E=高脉冲 (4)、写数据 RS=H,R/W=L,D0~D...

    07-11
  • 单片机串口如何接收不定长数据的?

    我们在使用其他STM32的单片机的时候,会发现有些困难,会发现常用的方法并不能用,在还没有接收完数据的时候,就解决不了。于是,只能用通用的方法来解决了。 这个通用的方法,其实原理和使用IDLE的原理一样:...

    07-11
  • ARM处理器的选型原则

    鉴于ARM微处理器的众多优点,随着国内外嵌入式应用领域的逐步发展,ARM微处理器必然会获得广泛的重视和应用。但是,由于ARM微处理器有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,...

    07-10
  • 有哪些低功耗设计方法?单片机系统低功耗设计要点介绍

    功耗,已经是一个老生常谈的话题了。对于功耗,大家多多少少有所了解。目前,很多产品的宣传里便带有低功耗噱头。为增进大家对功耗的认识,本文将基于两点介绍功耗:1.低功耗主要设计方法,2.单片机系统低功耗设计...

    07-10
  • 8位32位MCU如何选择?如何选择合适的MCU?

    MCU,对于普通人而言,是一个高大上的存在。但是,在工业中,MCU确实常见产品。为增进大家对MCU的认识,本文将基于两点介绍MCU:1.8位MCU和32位MCU如何选择?2.如何选择合适的MCU。如果你对MCU具有兴趣,不妨继续往...

    07-09
  • ARM开发:一 ARM微处理器概述

    1.1ARM-Advanced RISC Machines ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术...

    07-08
  • 分析C51单片机的一些误区和注意事项

    简介:常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。 1) C...

    07-08
  • 51单片机几个延时程序

    简介:51单片机几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响. 一. 500ms延时子程序(晶振12MHz,一个机器周期1us.) 程...

    07-08
  • 总结单片机软件抗干扰的几种办法

    简介:在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。 1、软件抗干扰方法的研究 在工程实践中...

    07-08
  • 基于C51单片机实现汽车座椅自动控制系统的软硬件设计

    引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节...

    07-02
  • MCS51单片机程序设计时堆栈的计算方法解析

    用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己...

    07-02
下载排行榜
更多
评测报告
更多
广告