ARM汇编程序---1-100累加和一个简单排序
2012-10-19 23:21
344 查看
嵌入式初学者,这学期刚开课,学起来感觉很不错。
第一个累加和的源码:
第二个排序的源码附上:
第一个累加和的源码:
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
相关文章推荐
- 反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- C++反汇编揭秘1 – 一个简单C++程序反汇编解析 (Rev. 3)
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 第一周:通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 一个简单的排序程序
- 反汇编一个简单的C程序,分析汇编代码
- (作业1)将一个简单的C程序编译成汇编代码,讨论计算机是如何工作的进行
- 一个在开发板上运行的超简单汇编程序--何军
- 写ARM汇编程序的一个注意事项
- C++反汇编揭秘:一个简单的C++程序反汇编解析
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- ARM汇编程序---ARM汇编实现简单判断环习题
- 一个用delphi写的整合汇编与api的简单的窗口程序
- Linux操作系统的简单指令及如何使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内容。
- Linux内核分析实验1——汇编一个简单的C程序
- 深入理解计算机系统读书笔记之一个简单汇编程序的调试分析
- 32位汇编语言学习笔记(28)--一个简单的光标控制程序
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- win32汇编实现一个简单的TCP服务端程序(WinSock的简单认知应用)
- Linux内核分析-反汇编一个简单的C程序并简单分析