单片机之汇编指令系统
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
评论
  • 【免费领取】Telink-泰凌微电子 B91物联网应用开发套件


  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • STC12C5A60S2单片机引脚图

    [导读]P0.0—P0.7(39—32):P0口是一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了

    昨天
  • 51单片机C中关于.c文件和.h文件

    [导读]1)h文件作用1 方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明;2 提供接口:对一个软件包来说可以提供一个给外界的接口(例如:

    昨天
  • 51单片机特殊功能寄存器有多少?如何设置?

    [导读]MCS-51单片机特殊功能寄存器是怎样设置的?答:MCS-51单片机内的I/O口锁存器、定时器、串行口缓冲器以及各种控制寄存器和状态寄存器都以特殊功能寄

    昨天
  • AT89S52单片机的最小系统

    [导读]AT89S52单片机的最小系统图:

    昨天
  • 一个5 V单电源供电的宽带低噪声放大器的设计

      随着社会生产力的发展,人们迫切地要求能够远距离随时随地迅速而准确地传送多媒体信息。于是,无线通信技术得到了迅猛的发展,技术也越来越成熟。而宽带放大器是上述通

    昨天
  • Linux设备驱动之input子系统(驱动代码和测试程序)

      对于输入类设备如键盘、鼠标、触摸屏之类的Linux驱动,内核提供input子系统,使得这类设备的处理变得非常便捷。总体上来讲,input子系统由三部分组成:

    昨天
  • 应用C51单片机的8个注意点

      1)C忌讳绝对定位。常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作用域,编译

    昨天
  • 基于ARM7微处理器LPC2148 接口的3.2 寸液晶触摸屏

      0引言  人机交互界面的种类较多,如键盘、数码管显示器、液晶显示器及带触摸的液晶屏等。决定人机交互接口方式的主要因素是成本和实际应用的需要。近十年来,液晶触

    07-01
  • 嵌入式设计人员必须掌握的存储技术

      微控制器的存储架构可能很简单(图1)。但是,随着应用开始朝便携化、虚拟化和个性化方向发展,它们现在变得相当复杂。多核(multicore)、许多核(many

    06-29
  • 单片机应用基础

    [导读]单片机把微型计算机的主要功能部件集成在一个芯片上的单芯片微型计算机。如果说单片机就是一个电脑你可能不会认可,其实它和我们用的电脑的在本质上没有区别,只是

    06-28
  • MCS-51单片机内部数据存储器特点及如何设置

    [导读]MCS-51单片机内部数据存储器是怎样设置的?答:MCS-51单片机内部有128个字节的数据存储器,内部RAM编址为00H~7FH。MCS-51对其内部

    06-28
  • 8031、8051、8751、89C51、89S51的区别

    [导读] 在8031、8051、8751、89C51、89S51的区别与特点介绍8031/8051/8751是Intel公司早期的产品。8031的特点8031片

    06-28
下载排行榜
更多
广告