MDK ARM环境下的伪指令的测试

news2025/1/11 10:57:48

目录

测试目标:

测试代码:

1. start.s

2. align.s

测试结果:

1 .ldr伪指令的测试结果:

2 .align伪操作测试结果:

结果分析:


测试目标:

  1. 熟悉ARM处理器的伪指令,本次实验主要来练习ldr伪指令和align伪操作的使用。
  2. 理解ARM处理器伪指令的功能,并学会分析汇编语言代码。

测试代码:

1. start.s

area init,code,readwrite

 entry

start

ldr r0,=0x7000000

orr r0,r0,#0x13

mcr p15,0,r0,c15,c2,4



ldr r0,=0x7e004000

mov r1,#0

str r1,[r0]



ldr r1,=0x7e000020

mov r0,#0x1000

str r0,[r1]



ldr r1,=0x7e000024

mov r0,#0

str r0,[r1]

halt

b halt

 end

2. align.s

 area init,code,readwrite

 entry

start

mov r1,r0

mov r0,#12

ldr r4,src

ldr r3,=src



ldr r5,str

ldr r6,=str

ldr r7,str

src

dcd 7777

str

dcd 0x33f80000

dcb 0x88

dcb 0x77

align

reset

mov r8,#0

end

测试结果:

1 .ldr伪指令的测试结果:

2 .align伪操作测试结果:

结果分析:

1.LDR伪指令是将一个32位的常数或者一个地址值读取到寄存器中,可以看作是加载寄存器的内容。由图1可知LDR伪指令替代成具有相同功能的thumb指令,加载的常数不符合MOV或MVN指令立即数的要求,汇编器将常量放入内存文字池,并使用一条程序相对偏移得LDR指令从内存文字池读出常量。

2..align的作用范围只限于紧跟它的那条指令或者数据,而接下来的指令或者数据的地址由上一条指令的地址和其长度决定。由图2可知align下紧跟的指令的PC值是十六进制的28,是以4的倍数对齐。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1282177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化之旅成功的“秘诀”

原创 | 文 BFT机器人 引言 近年来,随着机器人技术的蓬勃发展,各行各业都向自动化方向进军,自动化已逐渐成为行业发展的必需品,贯穿各行业的各个环节,为各行业的发展提供助力。 然而,自动化是一把双刃剑。在…

【C++11(一)】右值引用以及列表初始化

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 C11 1. 前言2. 统一的列表初始化3. initializer…

C++ Easyx 让圆球跟随鼠标移动

目录 下载Easyx 检验 绘制窗口 画圆 响应事件的处理 清除原先绘图 渲染缓冲区 逻辑 代码托管 下载Easyx 在Easyx官网下载大暑版: 检验 写如下代码: 编译运行,如果控制台出现2023字样,代表配置成功: 绘制窗口 进入Eaxy官方网站,点…

【Java 基础】18 I/O流

文章目录 1.基本概念2.字节流3.字符流4.标准输入输出5.最佳实践 I/O流(Input/Output 流)是计算机程序中不可或缺的一部分, 往大了说所有的操作都是IO。Java 提供了强大而灵活的 I/O 框架,支持各种数据的 读取和 写入操作。 1.基…

Pandas操作数据库

一:Pandas读取数据库数据 二:Pandas读取海量数据 三:Pandas向数据库存数据 四:Pandas写入海量数据

docker 可视化工具操作说明 portainer

官网地址 https://docs.portainer.io/start/install-ce/server/docker/linux 1.First, create the volume that Port docker volume create portainer_data2.下载并安装容器 docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restartalways -v /var/run/docker…

web自动化 -- pyppeteer

由于Selenium流行已久,现在稍微有点反爬的网站都会对selenium和webdriver进行识别,网站只需要在前端js添加一下判断脚本,很容易就可以判断出是真人访问还是webdriver。虽然也可以通过中间代理的方式进行js注入屏蔽webdriver检测,但…

自然语言处理:电脑如何理解我们的语言?

☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 ​ 文章目录 ​编辑 常见方法 1.基于词典的方法 2.基于计数的方法 基于推理的方法 Bert input_ids attention_mask token_type_ids 结语 在广…

英伟达狂卖50万台GPU!AI爆火背后,是显卡的争夺

据市场跟踪公司Omdia的统计分析,英伟达在第三季度大约卖出了50万台H100和A100 GPU! 此前,Omdia通过英伟达第二季度的销售额,估计其大概卖出了900吨GPU! 大语言模型火爆的背后,英伟达建立起了强大的显卡帝…

分治-归并排序

文章目录 🌞315. 计算右侧小于当前元素的个数🌈1. 题目⛅2. 算法原理🪐3. 代码实现 🌕493. 翻转对🌠1. 题目⭐2. 算法原理🌟3. 代码实现 🌞315. 计算右侧小于当前元素的个数 🌈1. 题…

深圳找工作的网站

深圳吉鹿力招聘网是一家在深圳做的比较好的招聘网站,提供一站式的专业人力资源服务,包括网络招聘、校园招聘、猎头服务、招聘外包、企业培训以及人才测评等。深圳吉鹿力招聘网在深圳的口碑相当好,是一个很好的选择。 深圳找工作用 吉鹿力招聘…

构建高效预约系统:深入探讨预约系统源码的设计和实现

随着各行业对高效资源利用和便捷服务的需求不断增加,预约系统成为了解决问题的有效工具。在这篇文章中,我们将深入研究预约系统源码的设计原则,并展示一些基本的技术代码,帮助读者更好地理解预约系统的实现方式。 设计原则 1. …

嘴尚绝卤味:健康卤味,未来餐饮市场的新星

随着人们生活水平的提高,对于吃的要求也越来越高。尤其是在快节奏的现代社会中,健康饮食成为了越来越多人的追求。在这种背景下,健康卤味这一新兴食品品类应运而生,成为了餐饮市场的新宠儿。 一、健康卤味的崛起 传统的卤味制作过…

「Verilog学习笔记」占空比50%的奇数分频

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 根据题意7分频,实际上是第一次电平变化经历了4个上升沿3个下降沿,第二次电平变化是4个下降沿3个上升沿,所以用两个计数器就行了。分别对…

Git:修改最近一次 Git 提交的描述,使用 --amend 选项

目录 步骤1. 使用编辑器修改最近一次提交的描述 git commit --amend2. 在编辑器中修改描述3. 保存修改4. 如果提交包含文件修改5. 强制推送(如果已经推送到远程仓库) 步骤 1. 使用编辑器修改最近一次提交的描述 git commit --amend git commit --amend…

软考初级、中级、高级怎么选?

本年度的PMP考试已经结束啦,对于刚考完的威宝和已经通过考试的威班们来说,刚开始接触PMP认证的时候在科普阶段有看到过“软考”的字眼。什么是软考,它主要考什么?通常用于哪些方面?软考又和PMP有什么关系?如…

备战春招——12.3 算法

哈希表 哈希表主要是使用 map、unordered_map、set、unorerdered_set、multi_,完成映射操作,主要是相应的函数。map和set是有序的,使用的是树的形式,unordered_map和unordered_set使用的是散列比表的,无序。 相应函数…

CityEngine2023 shp数据城市与路网三维模型并导入UE5

目录 0 引言1 城市和道路数据获取1.1 常用方法1.2 OSM数据获取1.3 OSM数据格式1.3.1 所有格式1.3.2 Shapefile格式 2 实践2.1 导入数据(.shp)2.2 构建三维模型2.3 将模型导入UE5 🙋‍♂️ 作者:海码007📜 专栏&#xf…

mac M1芯片上编译车载aaos

一:mac上需要磁盘分区(支持大小写) mac分区: 在 Mac 上的“磁盘工具”中将物理磁盘分区 - 官方 Apple 支持 (中国) 注意:盘符名字不能有空格否则编译aaos时报错 注意:盘符名字不能有空格否则编译aaos时报…

2023.12.2 关于 Spring AOP 详解

目录 Spring AOP Spring AOP 常见使用场景 AOP 组成 切面(类) 切点(方法) 通知 ​编辑 前置通知(Before) 后置通知(After) 返回通知(AfterReturning&#xff0…