当前位置: 首页 > news >正文

汇编攻城记-Cortex-M3指令集

类型

指令

全称

功能

内存访问

LDR

Load register

加载字到寄存器

LDRB

加载字节到寄存器

LDRH

加载半字到寄存器

LDRSH

加载半字到寄存器,再带符号扩展到32位

LDRD

从连续的地址空间加载双字(64位整数)到2个寄存器

LDM

Load multiple registers

从一片连续的地址空间中加载多个字到若干寄存器

STR

Store register

存储寄存器中的字

STRB

存储寄存器中的低字节

STRH

存储寄存器中的低半字

STRD

存储2个寄存器组成的双字到连续的地址空间中

STM

Store multiple registers

存储若干寄存器中的字到一片连续地址空间中

PUSH

把若干寄存器的值压入堆栈中

POP

从堆栈中弹出若干的寄存器值

通用数据处理指令

加减运算

ADC

ADd with Carry

带进位加法

ADD

加法

SUB

减法

RSB

反向减法

SBC

带进位减法

RSC

带进位反向减法

移位运算

ASR

Arithmetic Shift Right

算术右移,移动过程中符号位不变,即源操作数为正时,则最高位补0,否则补1

LSL

逻辑左移

LSR

逻辑右移

ROR

圆圈右移

RRX

带进位的逻辑右移一格

逻辑运算

AND

按位与,与C的“&”功能相同

ORR

按位或,与C的”|“功能相同

EOR

按位异或,与C的”^“功能相同

BIC

Bit Clear

按位清零,把一个数跟另一个无符号数的反码按位与

ORN

按位或非,把源操作数按位取反后,再执行按位或

比较运算

CMP

比较两个数并更新标志位

CMN

负向比较,把一个数和另一个数的二进制补码进行比较,并更新标志位

移动操作

MOVW

把16位立即数放到寄存器的底16位,高16位清零

MOV

加载16位立即数到寄存器

MOVT

把16位立即数放到寄存器的高16位,低16位不影响

MVN

移动一个数的补码, 可加载这些值的按位补码。这些补码数值为 -(n+1)

检查操作

TEQ

测试是否相等,对两个数执行异或,更新标志但不存储结果

TST

测试,对两个数执行按位与,更新z标志但不存储结果

位操作

RBIT

位反转,把一个32位整数先用2进制表达,再旋转180度

REV

对一个32位整数做按字节反转

REVH/REV16

对一个32位整数的高低半字都执行字节反转

REVSH

对一个32位整数的低半字中的字节反转,并将符号扩展到32位

除法运算

SDIV

带符号除法

UDIV

无符号除法

乘法运算

MUL

乘法

MLA

乘加

MLS

乘减

UMLAL

无符号长乘加,两个无符号的32位整数相乘得到64位的无符号积,再把积加到另一个无符号64位整数中

UMULL

无符号长乘法,

SMLAL

带符号长乘积,两个带符号的32位整数相乘得到64位的带符号积,再把积加到另一个带符号64位整数中

SMULL

带符号长乘法,两个带符号32位整数相乘得到64位带符号积

饱和运算

SSAT

带符号的饱和运算

USAT

无符号饱和操作,源操作数时带符号的

组合分离

BFC

位段清零

BFI

位段插入

SBFX

从一个32位整数中提取位段,并且带有符号扩展成32位整数

UBFX

无符号位段提取

符号扩展

SXTB

字节带符号扩展到32位

UXTB

字节被无符号扩展到32位,高24位清零

UXTH

半字节被无符号扩展到32位,高16位清零

相关文章:

汇编攻城记-Cortex-M3指令集

类型 指令 全称 功能 内存访问 LDR Load register 加载字到寄存器 LDRB 加载字节到寄存器 LDRH 加载半字到寄存器 LDRSH 加载半字到寄存器,再带符号扩展到32位 LDRD 从连续的地址空间加载双字(64位整数)到…...

大语言模型之五 谷歌Gemini

近十年来谷歌引领着人工智能方向的发展,从TensorFlow到TPU再到Transformer,都是谷歌在引领着,然而,在大语言模型上,却被ChatGPT(OpenAI)抢了风头,并且知道GPT-4(OpenAI&a…...

使用selenium实现对页面元素的抓取

一、背景介绍 工作中有个需求是需要对某个页面进行监控,但由于要监控页面数据是异步加载的,因此很难从状态码和返回结果层面进行校验。于是乎想到了通过判断页面元素是否存在且显示内容是否正确来达到此目标。调研了一下发现selenium可以实现对这种动态…...

大数据课程K12——Spark的MLlib概述

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的MLlib概念; ⚪ 掌握Spark的MLlib基本数据模型; ⚪ 掌握Spark的MLlib统计量基础; 一、Spark MLlib介绍 1. 概述 MLlib是Apache Spark的可迭代机器学习库。 2. 易于使用 …...

流程制造智能工厂总体架构及建设路线规划方案PPT

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除,更多浏览公众号:智慧方案文库 数字孪生智能制造(智改数转)数字化架构设计及应用..水泥智能工厂解决方案.pptx智慧制造规划设计解决方案.pptx智能工厂落…...

网络有源号角(50W-100W)社区小区广播 工地语音播报,隧道广播,钢铁广播广播系统

网络有源号角(50W-100W)社区小区广播 工地语音播报,隧道广播,钢铁广播广播系统 SV-7042T 50W网络有源号角 SV-7042T是深圳锐科达电子有限公司的一款壁挂式网络有源号角,具有10/100M以太网接口,可将网络音…...

【Kali Linux高级渗透测试】深入剖析Kali Linux:高级渗透测试技术与实践

📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看 📘相关专栏C语言初阶、C…...

DHCP中继实验

文章目录 一、实验背景与目的二、实验拓扑三、实验需求四、实验解法1. 配置IP地址2.配置R1为DHCP服务器,能够跨网段为192.168.2.0/24网段自动分配IP地址3. 在PC3上Ping 192.168.1.1,确认可以Ping通 摘要: 本实验旨在通过配置DHCP中继实现跨网…...

C++进阶之多态

多态 多态的概念多态的定义及实现1.多态的构成条件2.虚函数3.虚函数的重写4.虚函数重写的两个例外5.C11 override 和 final6.重载、覆盖(重写)、隐藏(重定义)的对比 抽象类1.概念2.接口继承和实现继承 多态的原理1.虚函数表2.多态的原理3.动态绑定与静态绑定 单继承和多继承关系…...

QtCreator中三种不同编译版本 debug、release、profile 的区别

debug调试模式,编译后的可执行文件很大,带了很多调试符号信息等,方便开发阶段调试的时候进入具体的堆栈查看值。会打开所有的断言,运行阶段性能差速度慢,可能会有卡顿感觉。 release发布模式,编译后的可执…...

golang中map赋值

众所周知,golang中map是一个指针,既然是一个指针,那么参数传递、赋值应该都是指针传递,而下面的例子也印证了我的想法 package mainimport "fmt"func test_map2(m map[string]string) {fmt.Printf("inner: %v, %p…...

myspl使用指南

mysql数据库 使用命令行工具连接数据库 mysql -h -u 用户名 -p -u表示后面是用户名-p表示后面是密码-h表示后面是主机名,登录当前设备可省略。 如我们要登录本机用户名为root,密码为123456的账户: mysql -u root -p按回车,然后…...

【深度学习_TensorFlow】过拟合

写在前面 过拟合与欠拟合 欠拟合: 是指在模型学习能力较弱,而数据复杂度较高的情况下,模型无法学习到数据集中的“一般规律”,因而导致泛化能力弱。此时,算法在训练集上表现一般,但在测试集上表现较差&…...

uniapp授权小程序隐私弹窗效果demo(整理)

<template> <view class"dealBox"><view class"txtBox padding10"><!-- 查看协议 -->在您使用施工现场五星计划小程序之前&#xff0c;请仔细阅读<text class"goToPrivacy" click"handleOpenPrivacyContract&qu…...

c++学习之string实现

字符串 - C引用 (cplusplus.com)这里给出标准官方的string实现&#xff0c;可以看到设计还是较为复杂的&#xff0c;有成员函数&#xff0c;迭代器&#xff0c;修饰符&#xff0c;容量&#xff0c;元素访问&#xff0c;字符串操作等&#xff0c;将字符尽可能的需求都设计出来&a…...

kubevirt虚机创建svc通过NodePort的方式暴露端口

背景 存在kubevit存在的三个虚机&#xff1a; ubuntu-4tlg7 7d22h Running True ubuntu-7kgrk 7d22h Running True ubuntu-94kg2 7d22h Running True 网络没有做透传&#xff0c;pod也不是underlay网络想要通过NodePort方式暴露虚机22端口进行远程登录。 …...

Elasticsearch终端命令行用法大全

API作用使用场景curl localhost:9200/_cluster/health?pretty查看ES健康状态curl localhost:9200/_cluster/settings?pretty查看ES集群的设置其中persistent为永久设置&#xff0c;重启仍然有效&#xff1b;trainsient为临时设置&#xff0c;重启失效curl localhost:9200/_ca…...

nacos版本升级注意事项

背景&#xff1a;nacos版本升级&#xff0c;1.0.1升级到2.1.2&#xff0c;nacos主要用作配置中心 1 从官网下载新版本nacos压缩包 2 由于1.x到2.x版本数据结构发生变化&#xff0c;无法沿用旧的数据库&#xff0c;所以新建一个数据库实例&#xff0c;来保存具体的nacos配置信息…...

JavaScript作用域与作用域链

JavaScript作用域与作用域链 JavaScript的作用域和作用域链是理解这门语言的关键概念之一。作用域指的是变量和函数在程序中可被访问的范围。作用域链是由函数的嵌套关系决定的变量对象的链式结构。 静态作用域与动态作用域 JavaScript使用静态作用域&#xff0c;也称为词法…...

MQTT异常掉线原因

一、业务场景 我们在使用MQTT协议的时候&#xff0c;有些伙伴可能会遇到MQTT客户端频繁掉线、上线问题 二、原因分析及异常处理 1.原因&#xff1a;使用相同的clientID 方案&#xff1a;全局使用的clientID保证唯一性&#xff0c;可以采用UUID等方式 2.原因: 当前用户没有Top…...

轻量级抢占式任务调度器:面向Arduino的毫秒级实时调度

1. 项目概述Task Scheduler是一款专为 Atmel AVR&#xff08;ATmega328P/ATmega2560&#xff09;与 ARM Cortex-M3&#xff08;SAM3X8E&#xff09;架构微控制器设计的轻量级、抢占式实时任务调度器&#xff0c;面向 Arduino 生态系统深度优化。其核心目标并非替代完整 RTOS&am…...

人机互信的瓶颈在于……

人机互信的核心瓶颈在于技术透明度不足、责任归属模糊、伦理对齐困难以及人类对技术的过度依赖与误解&#xff0c;这些因素共同导致了人机协作中的信任危机。一、技术层面的瓶颈1. 算法"黑箱"效应决策过程不透明&#xff0c;深度学习模型的内部运算过程难以解释&…...

三维建模师必看:Blender中坐标变换的数学原理与操作技巧

三维建模师必看&#xff1a;Blender中坐标变换的数学原理与操作技巧 在Blender的世界里&#xff0c;每个顶点、每条边、每个面都在三维空间中占据着精确的位置。当我们移动一个物体、缩放一个模型或旋转一个摄像机时&#xff0c;背后是一套精密的数学机制在运作。对于艺术背景的…...

泛微Ecology数据库小白必看:三张表搞定待办、已办、办结查询(附完整SQL及字段解释)

泛微Ecology流程查询实战指南&#xff1a;从表结构到SQL优化的完整解析 引言 在日常办公自动化管理中&#xff0c;泛微Ecology系统作为国内主流的工作流平台&#xff0c;承载着企业大量业务流程的运转。但对于刚接触系统管理的技术人员来说&#xff0c;面对复杂的数据库表结构和…...

SEO_为什么你的网站需要持续进行SEO优化?

SEO优化的重要性&#xff1a;为什么你的网站需要持续进行SEO优化 在当前竞争激烈的互联网市场中&#xff0c;网站的流量和用户参与度直接影响着企业的成功与否。为什么你的网站需要持续进行SEO优化呢&#xff1f;SEO&#xff08;搜索引擎优化&#xff09;不仅是提升网站在搜索…...

几种因网络波动导致应用与数据库操作异常的现象

文章目录环境文档用途详细信息环境 系统平台&#xff1a;银河麒麟 &#xff08;X86_64&#xff09; 版本&#xff1a;4.5.8 文档用途 介绍几种因网络波动导致应用与数据库操作异常的现象。 详细信息 网络超时相关 应用端常见的连接超时相关报错信息&#xff0c;如&#x…...

Acetic Acid-PEG-OPSS,分子链两端分别带有吡啶基二硫化物和乙酸基团

一.名称英文名称&#xff1a;AA-PEG-OPSS&#xff0c;Acetic Acid-PEG-OPSS&#xff0c;OPSS-PEG-AA&#xff0c;OPSS-PEG-Acetic Acid中文名称&#xff1a;乙酸聚乙二醇二巯基吡啶&#xff0c;乙酸PEG二巯基吡啶分子量&#xff1a;1k&#xff0c;2k&#xff0c;3.4k&#xff0…...

告别“卡脖子”:TVA的0.8秒背后柔性生产与极致效率

作为生产厂长&#xff0c;每天最头疼的不是做出好产品&#xff0c;而是如何在“多品种、小批量、快交期”的频繁切线中&#xff0c;保证产线不停机、不降速。现代汽车零部件企业的生产节奏越来越快&#xff0c;冲压产线往往要求几秒钟甚至零点几秒就出一个件。在这种极限节拍下…...

TPAMI 2025 | 港城大团队新作:强化学习引导 ODE 轨迹,提升图像复原性能

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达在计算机视觉领域&#xff0c;图像恢复一直是核心研究方向之一——从模糊的监控画面中还原清晰细节、让水下拍摄的照片重现真实色彩、给低光照的夜景图像提亮增晰&#x…...

CosyVoice部署实战:从零到一搭建你的AI语音合成环境

1. 环境准备&#xff1a;打造AI语音合成的温床 第一次接触CosyVoice时&#xff0c;我对着官方文档发呆了半小时——那些密密麻麻的命令行像天书一样。后来才发现&#xff0c;搭建AI语音合成环境就像组装乐高积木&#xff0c;只要按步骤拼接关键部件就能成功。我们先从最基础的系…...