一、Keli创建汇编项目
打开keli,选择并创建项目,选择项目文件夹并设置项目名称,然后选择合适的芯片版本。文件夹和项目名尽量不要含有中文
二、使用步骤
1.选择运行环境
这里选择这两个即可。
2.编写汇编代码
代码如下:
AREA MYDATA, DATA
AREA MYCODE, CODE
ENTRY
EXPORT __main
__main
MOV R0, #10
MOV R1, #11
MOV R2, #12
MOV R3, #13
LDR R0, =func01
BL func01
LDR R1, =func02
BL func02
BL func03
LDR LR, =func03
LDR PC, =func03
B .
func01
MOV R5, #05
BX LR
func02
MOV R6, #06
BX LR
func03
MOV R7, #07
MOV R8, #08
BX LR
,右键点击source group, 选择add new item, 选择创建.s文件,然后将其复制进项目其中
3.进行仿真调试
点击魔法棒,然后再弹出的窗口中,将debug内项目改为下图所示:
然后点击project,选择build target,如果没有报错,就代表编译完成。
然后,建立适当断点,选择并开始debug。点击run,程序将运行到设置的断点处自行停止。然后可以观察寄存器中值。运行前
运行后
可以看到r1,r2,r3等寄存器燃按预想发生了相应变化。
hex文件
HEX文件每行的ASCII数据作为一个记录-行记录,由16进制数据组成。并且每行数据包含5个不同的域。
Hex文件数据格式
(1):-- 每个行记录都以冒号作为开始;
(2)表示当前行记录的数据长度(1个字节),表示当前行当中的数据域(D.D)字节长度,可为0x00;
(3)地址域,根据类型域的不同分别代表不同含义,地址字节为2个字节,最大只能表示64K(2)的数据大小。;
(4)当前行记录的类型(1个字节),可能的值为:0x00(数据记录)、0x01(HEX文件结束记录,在最后一行)、0x02(扩展段地址记录)、0x03(开始段地址记录)、0x04(扩展线性地址记录)、0x05(开始线性地址记录);
(5)DD – 行记录的数据域,其字节长度域对应,可为空,长度不定;
(6)校验和(1个字节),校验和= 0x100 - (累加和%100),其中累加和为前四个域的相加的结果