嵌入式系统课程设计 汇编语言实验

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要高。刚开始使用时建议在网站上下载模板代码进行修改。

以上是关于嵌入式系统课程设计 汇编语言实验的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式系统课程设计 汇编语言实验

《数据库系统概论》课程之实验五流六

《数据库系统概论》课程之实验五流六

操作系统存储管理实验课程设计报告

操作系统进程实验课程设计

操作系统存储管理实验课程设计报告