ARM汇编程序---1-100累加和一个简单排序

嵌入式 ARM 汇编编程例题 编写一段 ARM 汇编程序:循环累加队列 rjarray 中的所有元素,直到碰上零值元素,结果放在 r4 中 AREA total,CODE,READONLY ENTRY Start MOV r4,#0 ADR r0,rjarray Loop LDR r1,[r0],#4 ADD r4,r4,r1 CMP r1,#0 BNE loop stop B stop rj... 阅读详情

嵌入式初学者,这学期刚开课,学起来感觉很不错。

第一个累加和的源码:

	AREA TEXT,CODE,READWRITE
	ENTRY
	MOV R0,#100   ;循环数目
	MOV R1,#0	     ;初始化数据
LOOP
	ADD R1,R1,R0  ;将数据进行相加,获得最后的数据
	SUBS R0,R0,#1 ;循环数据R0减去1
	CMP R0,#0	     ;将R0与0比较看循环是否结束
	BNE LOOP	     ;判断循环是否结束,接受则进行下面的步骤	
	LDR R2,=RESULT
	STR R1,[R2]
RESULT
	DCD 0
STOP
	B STOP


第二个排序的源码附上:

	;排列算法:先将所有的数据与第一个进行比较,最后取出最小的数据放到第一个内存单元中
	;然后再从第二个内存单元开始进行比较,将第二小的数据放到第二个内存单元中,
	;以此内推则能将十个数据进行排列。
	AREA TEXT,CODE,READWRITE
	ENTRY
	LDR R0,=DATA       ;获得DATA数据的起始地址
	MOV R1,R0	 
	MOV R5,#9	          ;开始的循环数目是10次,所以应该从9开始
	MOV R6,R5
COMPARE
	ADD R0,R0,#4       ;将R0所存储的地址+4表示为下一个要比较的数的地址	
	SUB	R6,R6,#1  ;循环1次减1
	LDR R2,[R1]	 ;将放在寄存器中的数据取出进行大小比较
	LDR R3,[R0]
	CMP R3,R2
	MOVCC R7,R2	 ;如果后面的地址的数值比前一个小则交换他们的数据
	MOVCC R2,R3
	MOVCC R3,R7
	STR R2,[R1]	 ;将数据存储到相应的内存单元中
	STR R3,[R0]
	CMP R6,#0	          ;看每次的循环是否结束
	BNE COMPARE
	ADD R1,R1,#4       ;每次循环结束以后将初始的指向的内存地址后移一个单元
	MOV R0,R1	          ;重新初始化上个循环中的寄存器中保存的地址
	SUB R5,R5,#1       ;每次循环以后上面在以后的循环中的次数都会减1
	MOV R6,R5
	CMP R5,#0	 ;判断所有的循环是否结束
	BNE	COMPARE
DATA
	DCD 9,4,6,7,8,1,3,2,0,5
STOP
	B STOP


 

## ARM基础编程实验 ARM基础编程实验 作者:毛茏玮 / Saint 掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博:https://weibo.com/5458277467/profile?topnav=1&wvr=6&is_all=1 GitHub:github.com/saint-000 优快云: https://me.csdn.n... 阅读详情

相关推荐

电子科技大学微处理器与嵌入式实验一

换成STMIB是将每次传送后的地址+4变成每次传送前地址+4,换成STMDA是将每次传送后的地址+4变成每次传送后地址-4。1.此次实验用汇编和C语言实现了1~N的累加、字符串的拷贝、数字求和以及冒泡法排序这几项功能,了解了汇编语言的基础指令及其意义,同时初步入门了Keil编译器的使用与程序编写调试。实验1.1:运行Keil,建立工程文件,单步运行调试演示示例程序,深刻理解每一条指令,观察寄存器,内存空间的变化。实验1.3:理解C和汇编,并用汇编程序实现字符串拷贝,并在C程序中调用该汇编程序。

weixin_53284122的博客 3935

《ARM》汇编语言简单练习

《ARM》汇编语言简单练习。

qq_60071225的博客 2089

ARM汇编

arm体系结构 一、arm汇编 1.典型的嵌入式处理器 x86 PC机, 不用于嵌入式 arm RISC指令集 市场79.5% mips RISC指令集 占市场13.9% ARM及MIPS在市场中为常用处理器 microSPARC SUN 占市场3.1% PowerPc IBM 占市场2.8% 其它 占市场0.8% 2.计算机体

weixin_43138570的博客 953

ARM汇编语言实现1-100累加

【代码】ARM汇编语言实现1-100累加。

Venusler的博客 1901

汇编程序100例

学好汇编的一些小程序。。。让你知道使用汇编语言也可以做到一些程序

GDSFactory环境配置实战:Python、KLayout与PDK协同指南

GDSFactory是面向光子集成电路(PIC)设计的Python参数化建模框架,其核心价值在于将版图生成从手动绘图升维为可编程、可复现、可集成CI/CD的工程实践。它依赖Python科学计算生态(如NumPy)、EDA可视化工具KLayout的深度Python绑定,以及工艺厂PDK的标准化接入,三者构成‘计算-几何-工艺’技术闭环。典型应用场景包括教学级SiEPIC PDK快速原型、工业级AIM Photonics流片准备,以及自动化DRC与光学仿真流水线构建。本文聚焦GDSFactory落地中最关键也最

weixin_30983353的博客 369

ARM 汇编程序

一、ARM 汇编程序 1,ARM 汇编指令(ARM公司设计指定的) 一条 汇编指令 对应一条 机器指令 操作码 操作数 2,伪指令(由编译器厂商设计指定的,keil环境下有keil的伪指令,gnu环境下有gnu的伪指令) keil伪指令详细请看《常用汇编伪指令.docx》文档 3,宏指令(由编译器厂商指定) 二、ARM指令类型 ARM常用指令主要包括如下4个类型 (1)数据处理指令: 完成寄存器中数据的算术运算和逻辑运算的操作 (2)程序状态寄存器处理指令: MRS 和 MSR (3)跳转指令: B

weixin_44025419的博客 3123

深入解析时钟同步技术:相位同步、频率同步与同源时钟的实战应用

本文深入解析时钟同步技术的三种核心方式:相位同步、频率同步与同源时钟,详细阐述其技术原理、实现方案及实战应用。通过对比分析不同同步方式的特点与适用场景,为电子系统设计提供选型指南,帮助工程师优化时钟网络设计,提升系统稳定性和性能。

weixin_29240711的博客 449

arm linux 脚本 排序,ARM汇编程序---1-100累加和一个简单排序

嵌入式初学者,这学期刚开课,学起来感觉很不错。第一个累加和的源码:AREA TEXT,CODE,READWRITEENTRYMOV R0,#100 ;循环数目MOV R1,#0 ;初始化数据LOOPADD R1,R1,R0 ;将数据进行相加,获得最后的数据SUBS R0,R0,#1 ;循环数据R0减去1CMP R0,#0 ;将R0与0比较看循环是否结束BNE LO...

weixin_39559895的博客 1028

SAP采购申请详述;以及采购计划协议/交货计划行

SAP采购申请详述;以及采购计划协议/交货计划行

saplakes的博客 4341

MiniMax H3本地部署实战:ComfyUI整合包安装与提速插件验证指南

在AIGC工具链快速演进的当下,本地部署内容生成模型成为许多创作者和开发者的关注焦点。本地部署意味着数据不出本机、可按需定制工作流,还能规避云端排队与外部依赖,其核心价值在于为内容生产提供可控、私密且可编程的生成环境。ComfyUI作为模块化节点式AI绘画工具,凭借灵活的工作流编排和API接口能力,成为承载这类模型的热门平台。MiniMax H3作为支持文本、参考图等多种输入的内容生成模型,与ComfyUI结合后,既适合个人进行概念验证,也能用于团队私有化流程搭建。实际落地过程中,中文整合包显著降低了环境配

weixin_29042035的博客 294

ARM 汇编程序,演示中值滤波算法

无

qq_57160761的博客 738

通达信股本变迁文件(gbbq)解密方法

近年来A股市场跌宕起伏真特么精彩,本人愚钝,被整爆仓,损失惨重 痛定思痛,认为交易这种对纪律要求极高,且必须完全排除情绪影响的勾当,还是应该交给程序来干 数据哪里来呢?当然是拿来主义。。。问券商的交易软件要呗 到处查资料,得知通达信的权息文件数据齐全,不仅含有除权除息数据,还含有限售解禁、增发、可转债上市等股本变化数据 ——这对于某些对成交量变化敏感的交易模型是非常重要的

不甘碌碌老,结庐铸宝刀 2万+

写一段 ARM 汇编程序,演示中值滤波算法作业报告(物联20级)

无

qq_57160761的博客 170

科研党必备!用Requests+BeautifulSoup升级版Nature爬虫(含PDF下载功能)

本文介绍了一套基于Python Requests和BeautifulSoup的Nature期刊智能爬虫系统,专为科研人员设计,可自动抓取论文标题、摘要及开放获取的PDF文档。系统采用模块化设计,包含请求管理、PDF检测和邮件通知等功能,确保高效合规地获取学术资源,提升科研效率。

weixin_29041767的博客 256

c#仿热血江湖

Int32_1 = (int) table.Rows[i]["FLD_初级附魂"],Int32_2 = (int) table.Rows[i]["FLD_中级附魂"],Int32_3 = (int) table.Rows[i]["FLD_是否绑定"],Int32_0 = (int) table.Rows[i]["FLD_进化"],Form1.smethod_1(2, "加载百宝阁物品----没有百宝阁数据");Form1.smethod_1(2, "加载物品商店----没有物品数据");

weixin_42132177的博客 142

ARM体系结构与编程作业(中南大学)

作业一 AREA exone,CODE,READWRITE ENTRY CODE32 MOV r0,#100 ;向寄存器中存入要比较的次数 MOV r1,#1 ;初始的两个数 MOV r2,#0 loop ADD r2,r2,r1 ;两两相加 ADD r1,r1,#1;自动加一 SUB r0,r0,#1;要加的数减一 CMP r0...

魑魅魍魉 348

yolov8 转华为昇腾om脚本

yolov8 转华为昇腾om脚本

jacke121的专栏 1601

ARM汇编 —— 中值滤波

ARM汇编 —— 中值滤波 中值滤波原理 中值滤波有什么用? 提到中值滤波,很多人都知道这是一种函数处理方法,但是中值滤波到底有什么用? 中值滤波主要就是用于对脉冲噪声的滤除,特别是再滤除噪声的同时,能够保护信号的边缘,使之不模糊 中值滤波的算法也比较简单,易于用硬件来实现,这些优良特性是线性滤波方法没有的,所以,中值滤波方法一经提出,便在数字信号处理领域得到了广泛的应用 中值滤波该怎么做? 中...

ppqppl的博客 290

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ARM体系结构与编程作业

作业一 AREA exone,CODE,READWRITE ENTRY CODE32 MOV r0,#100 ;向寄存器中存入要比较的次数 MOV r1,#1 ;初始的两个数 MOV r2,#0 loop ADD r2,r2,r1 ;两两相加 ADD r1,r1,#1;自动加一 SUB r0,r0,#1;要加的数减一 CMP r0,#0 ;判断比较

狒狒也是程序猿的专栏 1452

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ARM汇编实践作业

keil运行编译一个简单的汇编程序

qq_52112285的博客 315

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ARM 汇编(中值滤波程序设计)

是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。这些优良特性是线性滤波方法所不具有的。此外,中值滤波的算法比较简单,也易于用硬件实现。所以,中值滤波方法一经提出后,便在数字信号处理领得到重要的应用。对一个数字信号序列xj(-∞

qq_52187415的博客 1034

体会KEIL5数据处理和传输过程

作者:毛茏玮 / Saint 掘金:juejin.im/user/5aa1f8… 微博:weibo.com/5458277467/… GitHub :github.com/saint-000 test1.1ARM数据处理指令寻址方式实验和ARM内存访问指令寻址方式实验中代码如下: 通过调试可以发现知道代码中的数据传送指令MOV;算术运算指令-加法指令ADD和减法指令SUB;以及比较指令CMP等...

weixin_33829657的博客 2217

ARMv7汇编实现冒泡排序:从算法到机器指令的底层优化实践

在计算机体系结构中,理解算法如何被转换为CPU可直接执行的指令是性能优化的基础。冒泡排序作为经典的排序算法,其逻辑简单,但将其翻译为汇编语言,尤其是在ARMv7架构下,涉及寄存器分配、内存访问模式和循环控制等核心原理。通过手写汇编实现,开发者能深入掌握指令集特性、内存对齐和流水线机制,这对于嵌入式开发、系统编程和性能热点分析具有重要技术价值。在嵌入式系统、驱动开发和高性能计算等场景中,这种底层控制能力能直接提升代码执行效率。本文以ARMv7汇编为例,详细解析冒泡排序的实现过程,涵盖反汇编分析和调试技巧,帮助

weixin_30410119的博客 411

ARM汇编 中值滤波

在嵌人式的实际应用中,如A/D采样时,如果有瞬间干扰信号,那么采样回来的数据就有明显的变化,如明显偏大或偏小。因为模拟信号是连续变化的,并且其变化一般都是相对缓慢的, 这时就可以采用中值滤波(也叫“算数中值滤波”),把这些干扰数据去除掉,其原理如下:在采样时连续采样奇数个数 (换句话说,工程信号就是由不同频率的正弦波叠加而成的,组成信号的不同频率的正弦波叫信号的“频率成分”或“谐波成分”。有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不模糊。处的样值,便定义为中值滤波的输出值。

apple_52030329的博客 611

X86与ARM之争:从指令集到生态的系统对比

指令集架构是连接软件与硬件的桥梁,决定了CPU如何理解指令以及整个计算生态的走向。从CISC与RISC的设计哲学差异出发,X86凭借复杂指令集与深厚的历史兼容性在桌面和服务器领域占据主导,而ARM以精简指令集和能效比优势统治移动与嵌入式市场。二者在译码器、乱序执行、内存模型、虚拟化支持等微架构层面存在显著分歧,直接影响功耗、性能和软件迁移成本。随着云原生、容器化和大小核混合架构的普及,理解X86与ARM的差异已成为云服务器选型、嵌入式开发乃至桌面计算决策的关键。从底层原理到生态取舍,系统梳理两大架构的竞争格

cuixie2370的博客 316
下一篇: ARM汇编程序---通过ARM汇编调用C语言函数实现累加
Z_Monkey
博客等级 码龄15年 13粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值