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

ARM传输数据以及移位操作

3.2.2 数据传送指令

    LDR/STR指令用来在寄存器和内存之间输送数据。如果我们想要在寄存器之间传送数据,则可以使用MOV指令。MOV指令的格式如下。

MOV {cond} {s}Rd, oprand2

MOV {cond} {s}Rd, oprand2

 其中,{cond}为条件指令可选项,{s}用来表示是否影响CPSR寄存器的纸,如MOVS指令就会影响寄存器CPSR的值,而MOV则不会,MVN指令用来将操作数operand2 按位取反后传送到目标寄存器Rd, 操作数operand2 可以是一个立即数,也可以是一个寄存器。

MOV和MVN指令的一般使用方法如下。

MOV R1, #1

MOV R1, R0

MOV PC, LR

MVN R0, #0xff

MVN R0, R1

 算术运算指令包括基本的加减乘除,逻辑运算指令包括与或非异或消除等,指令格式如下。

AOD {cond} {S} Rd, Rn operand2, 

ADC {cond} {S}Rd, Rn, operand2

SUB {cond} {S}Rd, Rn, operand2

AND {cond} {S}Rd, Rn, operand2

ORR {cond} {S}Rd,Rn, operand2

EOR  {cond} {S}Rd,Rn, operand2

BIC  {cond} {S}Rd,Rn, operand2

算数逻辑运算指令的基本使用方法以及说明如下

ADD R2,R1, #1

ADC R1,R1,#1

SUB R1, R1, R2

SBC R1, R1, R2

AND R0, R0, #3

ORR R0, R0, #3

EOR R0, R0, #3

BIC R0, R0, #3

3.2.4 操作数,operand2详解

   ARM指令的可选项很多,操作数也很灵活,很多ARM指令会使用第二个参数operand2, 可以是一个常数,也可以是寄存器 + 偏移的形式,操作数operand2 在汇编程序中经常出现的两种格式如下。

#contant

   第一种格式比较简单,操作室是一个立即数,第二种格式可以直接使用寄存器的值作为操作数。在3.2.3 节中的ADD, SUB, AND指令示例种,第二个操作数要么是一个常数,那么是一个寄存器,在第二种格式中, 通过{shift}可选性,我们还可以通过多种移位或者循环移位的方式。构建更加灵活的操作数,可以选择的移位方式如下。

#constant 将立即数constant 循环右移n位

ASR 算数右移n位,n的取值范围

LSL 逻辑左移n位,n的取值范围{1,32}

ROR 向右循环移动n位,n取值范围{1,31}

RRX 向右循环移动1位 带扩展

type Rs 仅仅在ARM中可用,,其中type指ASP, LSL, LSR, RCR, Rs 是提供移位数据的指令

相关文章:

ARM传输数据以及移位操作

3.2.2 数据传送指令 LDR/STR指令用来在寄存器和内存之间输送数据。如果我们想要在寄存器之间传送数据,则可以使用MOV指令。MOV指令的格式如下。 MOV {cond} {s}Rd, oprand2 MOV {cond} {s}Rd, oprand2 其中,{cond}为条件指令可选项,{s}用来表…...

06、如何将对象数组里 obj 的 key 值变成动态的(即:每一个对象对应的 key 值都不同)

1、数据情况: 其一、从后端拿到的数据为: let arr [1,3,6,10,11,23,24] 其二、目标数据为: [{vlan_1: 1, value: 1}, {vlan_3: 3, value: 1}, {vlan_6: 6, value: 1}, {vlan_10: 10, value: 1}, {vlan_11: 11, value: 1}, {vlan_23: 23, v…...

ngx_http_request_s

/* 罗剑锋老师的注释参考: https://github.com/chronolaw/annotated_nginx/blob/master/nginx/src/http/ngx_http_request.h */struct ngx_http_request_s {uint32_t signature; /* "HTTP" */ngx_connection_t …...

Docker 学习路线 2:底层技术

了解驱动Docker的核心技术将让您更深入地了解Docker的工作原理,并有助于您更有效地使用该平台。 Linux容器(LXC) Linux容器(LXC)是Docker的基础。 LXC是一种轻量级的虚拟化解决方案,允许多个隔离的Linux系…...

UEFI实战——显示图片

一、准备工作 1.1 BMP格式图片 参考:BMP格式详解获取“BMP格式详解”文档里的图片,命名为Logo.bmp将Logo.bmp图片放到U盘里,U盘格式FAT32二、实例代码 2.1 代码结构 TextPkg/ ├── Display.c ├── GetFile.c ├── Test.c ├── Test.dsc ├── Test.h └── Tes…...

Ansible中的playbook

目录 一、playbook简介 二、playbook的语法 三、playbook的核心组件 四、playbook的执行命令 五、vim 设定技巧 六、基本示例 一、playbook简介 1、playbook与ad-hoc相比,是一种完全不同的运用。 2、playbook是一种简单的配置管理系统与多机器部署系统的基础…...

怎样去除视频中的杂音,保留人声部分?

怎样去除视频中的杂音,保留人声部分?这个简单嘛!两种办法可以搞定:一是进行音频降噪,把无用的杂音消除掉;二是提取人声,将要保留的人声片段提取出来。 这就将两种实用的办公都分享出来&#xf…...

基于Qt QTreeView|QTreeWidget控件使用简单版

头文件解析: 这是一个C++代码文件,定义了一个名为MainWindow的类。以下是对每一句的详细解释: ```cpp #ifndef MAINWINDOW_H #define MAINWINDOW_H ``` 这是一个条件编译指令,用于避免头文件的重复包含。`MAINWINDOW_H`是一个宏定义,用于唯一标识这个头文件。 ```cpp #…...

edge浏览器的隐藏功能

1. edge://version 查看版本信息 2. edge://flags 特性界面 具体到某一特性:edge://flags/#overlay-scrollbars 3. edge://settings设置界面 详情可参考chrome: 4. edge://extensions 扩展程序页面 5. edge://net-internals 网络事件信息 6. edge://component…...

安卓抓包之小黄鸟

下载安装 下载地址: https://download.csdn.net/download/yijianxiangde100/88496463 安装apk 即可。 证书配置:...

Django中的FBV和CBV

一、两者的区别 1、在我们日常学习Django中,都是用的FBV(function base views)方式,就是在视图中用函数处理各种请求。而CBV(class base view)则是通过类来处理请求。 2、Python是一个面向对象的编程语言…...

信息泄露--

大唐电信AC简介 大唐电信科技股份有限公司是电信科学技术研究院(大唐电信科技产业集团)控股的的高科技企业,大唐电信已形成集成电路设计、软件与应用、终端设计、移动互联网四大产业板块。 大唐电信AC集中管理平台存在弱口令及敏感信息泄漏漏…...

C#WPF文本格式化模式实例

本文演示C#WPF文本格式化模式实例 WPF 文本渲染优缺点 WPF中的文本渲染和旧式的基于 GDI的应用程序的文本染有很大区别。很大一部分区 别是由于 WPF 的设备无关显示系统造成的,但 WPF 中的文本染也得到了显著增强,能更清晰地显示文本,在 LCD 监视器上尤其如此。 然而,W…...

嵌入式云平台一些基础概念的理解

1.SDK SDK是Software Development Kit的缩写,译为”软件开发工具包”,通常是为辅助开发某类软件而编写的特定软件包,框架集合等,SDK一般包含相关文档,范例和工具。 我自己的理解就似乎,SDK也就是软件开发工具包,他会为其使用者提供一些封装好的接口&…...

【项目管理】生命周期风险评估

规划阶段目标:识别系统的业务战略,以支撑系统的安全需求及安全战略 规划阶段评估重点:1、本阶段不需要识别资产和脆弱性;2、应根据被评估对象的应用对象、应用环境、业务状况、操作要求等方面识别威胁; 设计阶段目标…...

力扣 搜索旋转排序数组 二分

&#x1f468;‍&#x1f3eb; 33. 搜索旋转排序数组 class Solution {public int search(int[] nums, int target){int l 0;int r nums.length - 1;while (l < r){int m l r >> 1;//else大法&#xff0c;把无序段抛给else&#xff0c;if只处理有序段 // 需要特…...

【软件测试】个人博客项目测试报告

目录 1.报告概要 2、测试环境 3、手动测试用例编写 4、自动化测试用例 1.报告概要 测试对象&#xff1a;基于SSM项目的博客系统。 测试目的&#xff1a;检测博客项目是否符合预期&#xff0c;并且对测试知识进行练习和巩固。 测试点&#xff1a;主要针对常用的功能进行测…...

Express框架开发接口之今日推荐等模块

1.初始化 const handleDB require(../handleDB/index) // 获取全部模块 exports.allModule (req, res) > {(async function () {})() } // 更新或者添加模块 exports.upModule (req, res) > {(async function () {})() } // 根据id删除模块 exports.delModule (req, …...

UTONMOS:元宇宙顺势而上,重构数字化发展新形态

元宇宙&#xff08;Metaverse&#xff09;是一个虚拟的、且与现实世界平行的虚拟世界&#xff0c;由一系列相互关联的技术组成。在这个虚拟世界中&#xff0c;人们可以通过 VR、 AR等设备进入其中&#xff0c;与虚拟人物进行互动。 随着新一代信息技术的飞速发展&#xff0c;元…...

【Nginx37】Nginx学习:SSL模块(一)简单配置与指令介绍

Nginx学习&#xff1a;SSL模块&#xff08;一&#xff09;简单配置与指令介绍 又是一个重点模块&#xff0c;SSL 模块&#xff0c;其实就是我们常见的 HTTPS 所需要的配置模块。HTTPS 的重要性不用多说了吧&#xff0c;现在所有的 App、小程序 都强制要求是 HTTPS 的&#xff0…...

Delphi网络编程实战:UDP通信与多线程网络优化详解

前两篇文章分别讲解了Delphi中基于Indy组件的TCP点对点通信、HTTP/HTTPS接口交互&#xff0c;覆盖了可靠连接、Web对接两大常用场景。本篇将深入讲解UDP通信&#xff0c;同时补充多线程网络编程、数据传输防护、常见故障排查等进阶内容&#xff0c;补齐Delphi网络开发的核心模块…...

用STM32F103C8T6做个宠物喂食器:从电路图到代码的保姆级DIY教程

用STM32F103C8T6打造智能宠物喂食器&#xff1a;从硬件搭建到软件调优全流程解析 养宠物的朋友都知道&#xff0c;定时定量喂食对宠物健康至关重要。今天我们就来手把手教你如何用STM32F103C8T6单片机打造一个智能宠物喂食器&#xff0c;不仅能定时投喂&#xff0c;还能识别不…...

Linux党福利:Debian12下用VSCode+SDCC玩转51单片机(含WSL配置指南)

Debian 12下构建开源51单片机开发环境&#xff1a;VSCodeSDCC全攻略 在Linux环境下开发51单片机一直是个小众但极具技术挑战性的选择。相比Windows平台上Keil的垄断地位&#xff0c;开源工具链在Linux上的表现往往被低估。本文将带你用VSCodeSDCC在Debian 12上搭建一个完整的51…...

解锁AI编程新范式:Continue插件的颠覆性开发体验

解锁AI编程新范式&#xff1a;Continue插件的颠覆性开发体验 【免费下载链接】continue ⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI 项目地址: https://gitcode.com/GitHub_Trending/co/continue 你是否曾在深夜调试…...

英雄联盟玩家的终极效率工具:League-Toolkit 完整指南

英雄联盟玩家的终极效率工具&#xff1a;League-Toolkit 完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为错过匹配确认而烦恼&a…...

4个步骤掌握Faze4机械臂开发:从硬件组装到智能控制的完整实践指南

4个步骤掌握Faze4机械臂开发&#xff1a;从硬件组装到智能控制的完整实践指南 【免费下载链接】Faze4-Robotic-arm All files for 6 axis robot arm with cycloidal gearboxes . 项目地址: https://gitcode.com/gh_mirrors/fa/Faze4-Robotic-arm Faze4开源六轴机械臂项目…...

GreenLuma 2025管理器:Steam游戏库高效管理与解锁解决方案

GreenLuma 2025管理器&#xff1a;Steam游戏库高效管理与解锁解决方案 【免费下载链接】GreenLuma-2025-Manager An app made in python to manage GreenLuma 2025 AppList 项目地址: https://gitcode.com/gh_mirrors/gr/GreenLuma-2025-Manager 在数字娱乐日益丰富的今…...

Tencent Hunyuan3D-1.0学术合作机会:腾讯混元团队的研究方向与合作模式

Tencent Hunyuan3D-1.0学术合作机会&#xff1a;腾讯混元团队的研究方向与合作模式 【免费下载链接】Hunyuan3D-1 腾讯开源的Hunyuan3D-1项目&#xff0c;创新提出两阶段3D生成方法&#xff0c;实现快速、高质量的文本到3D和图像到3D转换&#xff0c;融合Hunyuan-DiT模型&#…...

Wan2.2-I2V-A14B图像转视频实战:基于卷积神经网络的风格迁移与动态生成

Wan2.2-I2V-A14B图像转视频实战&#xff1a;基于卷积神经网络的风格迁移与动态生成 1. 引言&#xff1a;当静态艺术遇见动态魔法 想象一下&#xff0c;你手中有一幅精美的水墨画或一张概念设计草图&#xff0c;如果能让它"活过来"&#xff0c;变成一段流动的视频&a…...

PyTorch模型转ONNX避坑指南:从repeat_interleave到Concat类型匹配的实战解决方案

PyTorch模型转ONNX避坑指南&#xff1a;从动态张量到类型匹配的深度解决方案 在模型部署的最后一公里&#xff0c;PyTorch到ONNX的转换常常成为绊倒开发者的隐蔽陷阱。当你在本地训练环境获得完美指标后&#xff0c;准备将模型推向生产时&#xff0c;各种意想不到的导出错误可能…...