嵌入式系统课程设计 汇编语言实验
Posted Ice丨shine
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式系统课程设计 汇编语言实验相关的知识,希望对你有一定的参考价值。
一、实验目的和实验要求
使用ARM thumb2汇编语言,在flash区定义10个大小不同的数据,对其进行排序并写入到RAM区。
二、实验结果
部分核心代码
AREA RESET, DATA, READONLY
EXPORT __Vectors
EXPORT __Vectors_End
EXPORT __Vectors_Size
__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
src DCD 3,2,1,13,6,5,7,8,9,10
AREA mydata, DATA ,readwrite
dst DCD 0,0,0,0,0,0,0,0,0,0
__Vectors_End
__Vectors_Size EQU 16 ;__Vectors_End - __Vectors
AREA |.text|, CODE, READONLY
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R7,=dst
LDR R0,=src
MOV R3,#0
ADD R4,R3,#4
MOV R6,#40
ADDLOOP
LDR R1,[R0,R3]
STR R1,[R7,R3]
ADD R3,R3,#4
CMP R3,R6
BLT ADDLOOP
MOV R3,#0
LOOP
LDR R1,[R7,R3]
LDR R2,[R7,R4]
CMP R1,R2
BLT OUTER;Branch if Greater Than
MOV R5,R1
MOV R1,R2
MOV R2,R5
STR R1,[R7,R3]
STR R2,[R7,R4]
;ADD R3,#4
OUTER
ADD R4,R4,#4
CMP R4,R6
BLT LOOP;Branch if Less Than
ADD R3,R3,#4
CMP R3,R6
BGT ENDER
MOV R4,R3
ADD R4,R3,#4
BLT LOOP
ENDER
LDR R1,[R7,#0]
LDR R2,[R7,#4]
LDR R3,[R7,#8]
ENDP
由R7得知地址
排序结果:
注:本实验是在keil上直接修改汇编代码进行的练习,练习keil软件的使用,后续代码中几乎不再使用。但是在一些场景下汇编的效率比写c要高。刚开始使用时建议在网站上下载模板代码进行修改。
以上是关于嵌入式系统课程设计 汇编语言实验的主要内容,如果未能解决你的问题,请参考以下文章