利用【IAR】编写汇编实现【冒泡排序】
作者:BruderLung
时间:2019.11.27
第一步:创建文件
File-New File
创建文件
第二步:创建工程
Project-Create New Project
创建工程
第三步:选择项目模板
asm-asm[Cortex-M]
选择项目模板
第四步:编写代码
在如图所示模板的main和B main之间编写代码
代码[10个数冒泡排序]:
__iar_program_start
main
MOV R0,#0 ;R0初始化
LDR R2,=RESULT ;将数据段的地址赋给R2
LOOP1 ;【R1初始化】
MOV R1,#0
B LOOP2
LOOP2 ;【比较大小】
ADD R6,R2,R1 ;第一个数地址
LDR R3,[R6]
LDR R4,[R6,#4]; 因为4位表示一个数
CMP R3,R4
BGT L1 ;R3>R4则交换位置
B LOOP3
L1 ;【交换位置】
STR R3,[R6,#4]
STR R4,[R6]
LOOP3 ;【改变R1值】
ADD R1,R1,#4
MOV R5,#36 ;(10—1)*4
SUB R5,R5,R0 ;比较内循环大小
CMP R1,R5
BLT LOOP2
BGE LOOP4
LOOP4;【外循环增加】
ADD R0,R0,#4
CMP R0,#36
BLT LOOP1
BGE STOP
STOP
B STOP
DATA
RESULT
DCD 1,3,2,5,6,4,8,7,9,0 ;数据段
B main
第五步:检查结果
在view中打开以下几个窗口,窗口【symbols】可以发现RESULT的地址为0x7c,,运行完毕后在窗口【memory】可发现排序正确。
谢谢大家的阅读!生活愉快!