(学习笔记)ARM汇编指令集

ARM汇编指令集 ldr,str ldr(load register)指令将内存内容加载入通用寄存器。 str(store register)指令将寄存器内容存入内存空间中。 (ARM采用RISC架构,CPU本身不能直接读取内存,而需要先将内存中内容加载入CPU中通用寄存器中才能被CPU处理。ldr/str组合用来实现 ARM CPU和内存数据交换) 8种寻址方式 寄存器寻址 mov r1, r2(C语言中的r1=r2) 立即寻址(立即数) mov r0, #0xFF00(加#表示是一个数字) 寄存器移位寻址 mov 阅读详情

ARM汇编指令集

指令、伪指令

(汇编)指令:是机器码的助记符,经过汇编器编译后,由CPU执行。

(汇编)伪指令:用来指导指令执行,是汇编器的产物,最终不会生成机器码。


两种不同风格的ARM指令

ARM官方的ARM汇编风格:指令一般用大写,Windows中的IDE开发环境。

GNU风格的ARM汇编:指令一般用小写。


ARM汇编的特点

1. LDR/STR架构

.ARM采用RISC架构,CPU本身不能直接读取内存,而需要先将内存中内容加载入CPU中通用寄存器中才能被CPU处理。
.ldr(load register)指令将内存内容加载入通用寄存器。
.str(store register)指令将寄存器内容存入内存空间中。
.dr/str组合用来实现 ARM CPU和内存数据交换


2. 8种寻址方式

寄存器寻址mov r1, r2
立即(立即数)寻址 mov r0, #0xFF00
寄存器移位寻址 mov r0, r1, lsl #3
寄存器间接寻址 ldr r1, [r2] 表示内存,内存地址存在r2这个寄存器中,把内存地址里的值给r1

基址变址寻址ldr r1, [r2, #4]内存地址在r2+4里面
多寄存器寻址 ldmia r1!, {r2-r7, r12}一次访问多个寄存器
堆栈寻址

ARM编程模型-常用指令集 由上述例子所示,每调用一级子函数,我们都把返回地址存入到未分组寄存器中,但是未分组寄存器毕竟是有限的,像Linux内核函数的调用层次往往很深,通用寄存器根本不够用,要想保存返回地址,就需要对数据进行压栈,那我们就要为每个模式的栈设置空间。操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。未设置的掩码位保持不变。对大多数的Thumb指令而言,没有使用条件执行(标志一直都是置位的),源寄存器和目标寄存器是相同的,只使用了低端寄存器,常量有大小的限制,没有使用内嵌桶形移位器。 阅读详情

相关推荐

4.ARM指令集

ARM指令集

qq_43314298的博客 1478

ARM汇编指令集·带例题

ARM汇编指令集

m0_64560763的博客 2428

第七章 ARM 反汇编基础(五)(ARM 汇编指令集)

文章目录ARM 汇编指令集ARM 指令集分类ARM 指令编码ARM 指令格式解析常见 ARM 指令数据处理与杂项指令加载存储指令其他指令 ARM 汇编指令集 Android 平台的 ARM 汇编指令集根据架构支持类型的不同可分为四大类: 注意: ARM 指令集一直在变化,armeabi 支持 ARMv7 以下版本的指令集,armeabi-v7a 支持 ARMv7 系列指令集,AArch32 ...

zlmm741的博客 2589

全面掌握ARM汇编指令集技术要点

ARM架构以其高效能和低功耗的特点广泛应用于嵌入式系统中。ARM汇编语言作为硬件级别的编程语言,为开发者提供了与硬件交互的能力。理解ARM汇编指令集是掌握嵌入式系统开发的基础。本章节将介绍ARM汇编指令集的核心概念和基础结构。数据处理指令是ARM汇编语言中最基础、最核心的部分,负责完成处理器内部数据的各种运算。这些指令可以分为以下几个类别:算术运算指令:包括加法、减法等,用于执行基本的数学运算。逻辑运算指令:如AND、ORR、EOR等,用于对数据位进行逻辑处理。

weixin_32661831的博客 1075

ARM7汇编指令集详细指南与实战

ARM7架构是一种广泛应用于嵌入式系统的处理器架构,以其低功耗、高性能的特点而闻名。ARM7代表了Advanced RISC Machines的一系列32位处理器,它们基于精简指令集计算(RISC)原理设计。这种架构特别适合于对功耗有严格要求的便携式设备,例如移动电话和手持设备。汇编语言是一种低级编程语言,它提供了一种与机器代码几乎等价但相对人类更为友好的符号表示法。汇编语言由助记符组成,每一个助记符对应一个特定的机器指令。

weixin_32242475的博客 1143

用workbuddy自定义Skill:手把手搭建AI炒股分析助手

AI Agent正成为个人投资研究的重要工具,而Skill作为行为规范,能让AI输出保持稳定与专业。在AI Agent应用中,很多人分不清Skill与Agent的区别:Agent负责目标拆解与执行,Skill则固化分析流程与输出模板。借助本地工作台workbuddy,用户可自定义Skill,实现从市场环境检查到财务排雷的五段式分析。通过调低温度参数、设定数据验证规则,该方案能有效避免大模型凭空编造数据,帮助个人投资者快速完成基本面体检、资金面观察与风险清单生成。本文基于一套可直接套用的配置与一个月实测,展示

weixin_29038537的博客 520

深入解析STM32驱动AT25DF321A FLASH芯片的SPI通信与数据完整性验证

本文深入解析STM32通过SPI通信驱动AT25DF321A FLASH芯片的全过程,包括硬件连接、驱动函数实现与数据完整性验证。重点介绍SPI配置、读写操作优化及CRC校验方法,确保数据存储的可靠性,为嵌入式存储系统开发提供实用指南。

agile9scrum的博客 1064

Proteus一体化安装STC15库添加

Proteus一体化安装与STC15库添加指南 本文详细介绍了Proteus 8.9 SP2专业版的一体化安装流程和STC15系列单片机库文件的添加方法。安装过程简单快捷,无需破解,稳定性好。通过将两个库文件(Lib和LIB)复制到Proteus安装目录的DATA/LIBRARY文件夹中,即可实现STC15W4K32S4芯片的仿真功能。文中还提供了新建工程和器件放置的步骤说明,特别指出STC15W4K32S4芯片可兼容仿真其他STC15系列芯片,并附带下载链接获取资源。该教程适用于电子设计初学者和开发者。

#法外狂徒张三的博客 4万+

实战解析:如何通过LTspice仿真优化MOS管缓启动电路,解决上电冲击电流问题

本文详细解析如何通过LTspice仿真优化MOS管缓启动电路,有效解决上电冲击电流问题。文章从问题根源分析入手,介绍LTspice环境搭建、缓启动电路设计原理、参数优化技巧及实际工程问题排查,帮助工程师掌握MOS管电源开关电路的关键设计方法,提升系统可靠性和性能。

weixin_28683689的博客 514

021、反激变换器的软启动设计

本文分享了反激变换器软启动设计的实践经验。作者通过一次上电炸机事故引出软启动的重要性,分析了启动瞬间电流冲击和环路饱和问题。介绍了三种软启动方案:效果差的RC电路、推荐使用的数字芯片方案以及分立元件实现方法,重点指出数字方案的一致性优势。文章还探讨了软启动与过流保护的配合问题,提供了实测波形、温度影响等调试要点,并总结出软启动时间选择、批量生产一致性等实用建议。最后强调软启动是电源可靠性的关键设计,不应为节省成本而忽略。全文包含多个工程实践细节,对电源设计人员具有重要参考价值。(149字)

Jack010169的博客 175

华为OD机试 - 整型数组按照个位数排序(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。给定一个非空数组,其元素数据类型为32位有

学Java,找哪吒 399

分数间隔均衡器的基本原理及应用(使用Matlab)

通过对接收信号进行加权求和,分数间隔均衡器可以抵消信号在传输过程中受到的频率响应失真。Matlab提供了丰富的工具和函数,可以方便地实现分数间隔均衡器,并进行性能评估。分数间隔均衡器(Fractional Interval Equalizer)是一种数字信号处理技术,用于均衡带通信道中的信号失真。分数间隔均衡器的基本原理是通过对接收信号进行加权求和,以抵消信号在传输过程中受到的频率响应失真。分数间隔均衡器在通信系统中具有广泛的应用。最后,我们通过比较均衡后的信号和发送数据的阈值来进行解调,并计算误码率。

2301_79325657的博客 677

ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C 解决方案

本文主要介绍了ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject解决方案,希望能对使用Numpy的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: ARM裸机全集之ARM体系结构(学习笔记)
下一篇: 初识PCB
wenmengji1022
博客等级 码龄10年 7粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值