MCS-51汇编

server/2024/9/22 11:49:58/

伪指令:

EQU:

        Equal,定义常量

COUNT EQU 10H    ; 定义一个符号名COUNT,其值为10H
DELAY EQU 500    ; 定义一个符号名DELAY,其值为500

数据传送:

MOV:

        MOVE,传送数据

MOVC:

算术运算:

跳转:

LJMP

        Long Jump,长跳转

LJMP label
  • 无条件跳转: 程序执行到 LJMP 指令时,会立即跳转到标号 label 所指定的位置继续执行,而不再执行 LJMP 指令之后的指令。
  • 长跳转: 与短跳转指令 SJMP 相比,LJMP 的跳转范围更大,可以跳转到程序空间的任意位置,而不受限于当前指令的附近。

 SJMP

        Short Jump,短跳转

SJMP label
  • 短跳转: 程序执行到 SJMP 指令时,会立即跳转到标号 label 所指定的位置继续执行,而不再执行 SJMP 指令之后的指令。
  • 跳转范围有限: SJMP 指令的跳转范围是相对于当前指令的,通常在-128到+127字节之间。

DJNZ

        Decrement and Jump If Not Zero

DJNZ Rn, rel
DJNZ direct, rel
  • 减一操作: 指令执行时,会先将 Rn 寄存器或 direct 所指向的内存单元中的值减1。
  • 判断是否为零: 然后判断减1后的结果是否为0。
  • 条件跳转: 如果减1后的结果不为0,则程序跳转到当前指令地址加上 rel 所指定的偏移量处继续执行;如果结果为0,则程序继续顺序执行下一条指令。

 CJNE

        Compare and Jump if Not Equal

CINE A,dir, rel
CINE A, #data,rel
CINE Rn,#data,rel
CINE @Ri,#data, rel
  • 比较两个操作数: CJNE 指令会比较两个操作数的值。
  • 条件跳转: 如果两个操作数不相等,则程序会跳转到指定的标号处继续执行。

JB

        Jump if Bit is set

AJMP

        Absolute Jump Within 2K

RET

        Return from subroutine,从当前子程序返回到调用它的主程序

        

RETI

        Return from Interrupt,中断服务程序返回到主程序

        

位操作:

RL

        Rotate Left,循环左移

RL A
  • A中的最高位(bit7)移入进位标志位C。
  • A中的其他各位向左移动一位。
  • C中的位移入A的最低位(bit0)

CPL

        Complement

        取反

END

END [标号]
  • END: 这是指令的关键字,表示程序结束。
  • [标号]: 是可选的。如果指定了标号,那么程序执行时会从这个标号处开始。通常,这个标号是程序的起始地址。

NOP

        No Operation

        即“空操作”。它的作用就是在程序执行过程中不进行任何实际操作,仅仅让程序计数器PC加1,从而实现一个机器周期的延时


http://www.ppmy.cn/server/120263.html

相关文章

一,初始 MyBatis-Plus

一,初始 MyBatis-Plus 文章目录 一,初始 MyBatis-Plus1. MyBatis-Plus 的概述2. 入门配置第一个 MyBatis-Plus 案例3. 补充说明:3.1 通用 Mapper 接口介绍3.1.1 Mapper 接口的 “增删改查”3.1.1.1 查询所有记录3.1.1.2 插入一条数据3.1.1.3 …

深度学习 之 常见损失函数简介:名称、作用及用法

引言 在机器学习和深度学习中,损失函数(Loss Function)是模型训练过程中一个不可或缺的部分。它用来度量模型预测结果与真实值之间的差异,从而指导模型参数的优化。合理选择损失函数对于提高模型的准确性和泛化能力至关重要。本文…

Linux Cron 和 Spring Task Cron 的异同点

相同点 周期性任务执行:两者都用于设置周期性执行的任务。表达式格式:都使用cron表达式来定义任务的执行时间。 不同点 表达式长度: Linux cron表达式长度为5位(不包括命令部分),分别为分钟、小时、日、月…

springboot实战学习(6)(用户模块的登录认证)(初识令牌)(JWT)

接着上篇博客学习。上篇博客是在基本完成用户模块的注册接口的开发以及注册时的参数合法性校验的基础上,基本完成用户模块的登录接口的主逻辑。具体往回看了解的链接如下。 springboot实战学习笔记(5)(用户登录接口的主逻辑)-CSDN博客文章浏览…

C++红黑树

目录 一、红黑树的概念 二、红黑树的性质 三、红黑树节点的定义 四、红黑树的插入 1. 按照二叉搜索的树规则插入新节点 2. 检测新节点插入后,红黑树的性质是否造到破坏 情况一: cur为红,p为红,g为黑,u存在且为红 情况二: c…

Redis中Hash(哈希)类型的基本操作

文章目录 一、 哈希简介二、常用命令hsethgethexistshdelhkeyshvalshgetallhmgethlenhsetnxhincrbyhincrbyfloathstrlen 三、命令小结四、哈希内部编码方式五、典型应用场景六、 字符串,序列化,哈希对比 一、 哈希简介 几乎所有的主流编程语言都提供了哈…

35. 模型材质和几何体属性

本文章给大家介绍模型对象的几何体.geometry和材质属性.material。 浏览器控制台查看对象和属性 浏览器控制打印模型对象mesh,可以展开对象,查看对象的几何体.geometry和材质属性.material。 const mesh new THREE.Mesh(geometry, material); consol…

OpenCV-直方图

文章目录 一、直方图1.含义2.参数解释 二、代码应用1.灰度图像的直方图2.绘制灰度图像直方图3.彩色图像直方图 一、直方图 1.含义 在OpenCV中,直方图是一种非常重要的工具,用于表示图像中像素强度的分布情况。直方图可以帮助我们了解图像的亮度、对比度…