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

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

第一个累加和的源码:

	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


 

  • 12
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您只有一个arm-linux-gnueabihf-gcc压缩包,无法通过包管理器进行安装,也没有root权限进行全局安装,您仍然可以通过以下步骤局部安装arm-linux-gnueabihf-gcc: 1. 首先,您需要下载arm-linux-gnueabihf-gcc压缩包并将其解压缩到您计算机的某个目录下。 2. 打开终端并进入解压缩后的目录。 3. 运行以下命令以更改权限: chmod -R 755 . 这将为该目录及其所有子目录设置适当的权限。 4. 运行以下命令以安装arm-linux-gnueabihf-gcc: ./configure --prefix=$HOME/arm-linux-gnueabihf-gcc make make install 这些命令将arm-linux-gnueabihf-gcc安装到您的主目录下的`arm-linux-gnueabihf-gcc`目录中。您可以根据需要更改`$HOME/arm-linux-gnueabihf-gcc`的路径。 5. 为了正确运行arm-linux-gnueabihf-gcc,您需要将其添加到`PATH`环境变量中。运行以下命令: export PATH=$HOME/arm-linux-gnueabihf-gcc/bin:$PATH 这将在您的当前会话中将arm-linux-gnueabihf-gcc添加到`PATH`环境变量中。如果您要在以后的会话中使用arm-linux-gnueabihf-gcc,则需要将此命令添加到您的`.bashrc`文件中。 6. 最后,您可以通过运行以下命令来验证arm-linux-gnueabihf-gcc是否已成功安装: arm-linux-gnueabihf-gcc -v 如果能够正确输出版本信息,则说明arm-linux-gnueabihf-gcc已成功安装。 希望这些步骤能够帮助您安装arm-linux-gnueabihf-gcc。如果您在安装过程中遇到任何问题,请随时与我联系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值