专栏中心

EEPW首页 > 专栏 > KEIL中调试ARM汇编程序(排序)

KEIL中调试ARM汇编程序(排序)

发布人:yancey小波 时间:2012-11-09 来源:工程师 发布文章

1. 安装KEIL软件。

2. 新建一个工程,选择SUMSUNGS3C2410A处理器。

3. 选项设置,如图。

设置TargetROM1

 

   

 

 

     设置Linker

 

 

4. 新建一个汇编文件,编写汇编程序。

5. 编译,调试。

因为原始数据和代码一起存在rom中,程序装载时ram不能保留数据,所以为空。将定义的数据段属性也设置为READONLY,就可解决这个问题。调试时,设置debug->memory map ,将该段地址设为exec read write如图:

 




    执行前,查看memory窗口如下图,从0x00000058开始存储了3232位未排序的数据。

 

 

    6. 执行run ,或者单步执行。

 

执行完成后,查看memory窗口如图,32个数据已被从大到小排序。







汇编程序如下

   AREA sort,CODE,READONLY                           ;定义代码段,冒泡排序。
   ENTRY
start
   MOV R4,#0
   LDR R6,=src                                                           ;R6存入数据段起始地址。
   ADD R6,R6,#len
outer
   LDR R1,=src
inner
   LDR R2,[R1]
   LDR R3,[R1,#4]
   CMP R2,R3                                                              ;比较R2,R3的值。  
   STRLT R3,[R1]                                                         ;如果R2<R3,则在数据段交换存储两个数据。
   STRLT R2,[R1,#4]
   ADD R1,R1,#4
   CMP R1,R6
   BLT inner                                                                   ;跳转到inner,比较后面两个数据。如果比较完成,执行下条指令。
   ADD R4,R4,#4
   CMP R4,#len
   SUBLE R6,R6,#4                                                     ;跳转到outer,从起始数据开始新一轮数据比较。如果完成,执行下条指令。
   BLE outer
stop                                                                                ;使程序退出。
   MOV R0,#0X18
   LDR R1,=0X20026
   SWI 0X123456
   AREA array,DATA,READONLY                              ;定义数据段,32个32位的数据。
src DCD 2,4,10,8,14,1,20,21,45,32,78,90,54,58,0,22,55,43,19,20,43,33,22,56,16,26,27,28,29,30,31,32
len EQU 32*4
   END


 

 

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

甲骨文与OpenAI终止数据中心项目

摩尔斯微电子在2026年德国嵌入式展推出“设计合作伙伴计划”

增强电流检测放大器的隔离性

TI 针对 Netbook/UMPC 的模拟器件解决方案

视频 2010-03-17

SIA:1 月全球半导体销售额同比大涨 46%

嵌入式系统 2026-03-10

5 Easy Steps to Building an Embedded Processor System Inside an FPGA

视频 2010-03-17

TAS5162 社区视频

视频 2010-03-17

TI 基于 MSP430 微处理器的电容式触摸按键方案

视频 2010-03-17

修改后的蘑菇可充当比特存储型忆阻器

全新OptoTEC®MSX多级热电制冷器可提供超紧凑设计,实现真空中高达100至120°C温差

日本Rapidus斩获首个客户——佳能

EDA/PCB 2026-03-10

脉宽调制(PWM):工作原理与电子控制中的关键作用

模拟技术 2026-03-10

TI 视频解码器和 ADC/DAC 产品及其应用

视频 2010-03-17

20C充电速率阴极实现电动车三分钟满充电

AMD 扩展锐龙 AI 嵌入式处理器产品组合,为工业与 AI 边缘解决方案提供可扩展的高效 AI 计算能力

2026-03-10
更多 培训课堂
更多 焦点
更多 视频

技术专区