"); //-->
1. 安装KEIL软件。
2. 新建一个工程,选择SUMSUNG的S3C2410A处理器。
3. 选项设置,如图。
设置Target中ROM1:
设置Linker:
4. 新建一个汇编文件,编写汇编程序。
5. 编译,调试。
因为原始数据和代码一起存在rom中,程序装载时ram不能保留数据,所以为空。将定义的数据段属性也设置为READONLY,就可解决这个问题。调试时,设置debug->memory map ,将该段地址设为exec read write如图:

执行前,查看memory窗口如下图,从0x00000058开始存储了32个32位未排序的数据。
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年德国嵌入式展推出“设计合作伙伴计划”
有成功将pppd移植到uCLinux的请进
增强电流检测放大器的隔离性
救命!!关于wince下的调试问题
TI 针对 Netbook/UMPC 的模拟器件解决方案
SIA:1 月全球半导体销售额同比大涨 46%
[分享][注意]ARM仿真器使用技巧——大家互相交流
5 Easy Steps to Building an Embedded Processor System Inside an FPGA
基于32位嵌入式系统的实时图像采集模块
TAS5162 社区视频
TI 基于 MSP430 微处理器的电容式触摸按键方案
谁知道AT89C51的
基于ARM体系的嵌入式系统BSP的程序设计
修改后的蘑菇可充当比特存储型忆阻器
简单的音频放大器(LM307、μA741)
基于Atmega8及MSM7512的嵌入式Modem设计
全新OptoTEC®MSX多级热电制冷器可提供超紧凑设计,实现真空中高达100至120°C温差
高性能小功率音频功率放大器(OPA604)
基于CPLDFPGA的出租车计费器
日本Rapidus斩获首个客户——佳能
厚膜集成块功率放大器(STK6153、STK3048)
基于ARM的海底大地电磁信号采集系统主控模块改进
MC1563构成的音频功率放大器
脉宽调制(PWM):工作原理与电子控制中的关键作用
TI 视频解码器和 ADC/DAC 产品及其应用
20C充电速率阴极实现电动车三分钟满充电
AMD 扩展锐龙 AI 嵌入式处理器产品组合,为工业与 AI 边缘解决方案提供可扩展的高效 AI 计算能力
采用TDA8924单片2×120WD类功放电路
to:gem2000(about BSP)