创建新工程:
建立新工程后,添加一项新项目(New item)。点击第一项C File(.c),因为是写main函数(main.c)。
勾选如下:
在新创建的main.c函数中写入如下程序:
再添加一项新项目,不过这次选择Asm File(.s)项,因为写Func.s函数,写入汇编语言
在Func.s函数中写入如下汇编语言:
AREA My_Function,CODE,READONLY
EXPORT Init_1
Init_1
MOV R1,#0 ;设R1寄存器是i
MOV R2,#0 ;设R2寄存器是j
LOOP ;写在最左边的是程序名的段名,执行跳转程序时要用到
CMP R1,#10 ;比较R1和10的大小
BHS LOOP_END ;如果R1大于或等于10.则跳转到LOOP_END程序段
ADD R2,#1 ;j++
ADD R1,#1 ;i++
B LOOP ;执行一次循环后,无条件再次进入循环判断,即是跳转到LOOP段
LOOP_END
NOP
END
汇编程序如上,观测程序,程序结束时R1和R2的值应是十进制的11。
然后点击左上角构建,正常情况下应如下图所示
然后点击魔法棒,为了之后的调试再修改几项设置。
将“Create HEX File”一项打勾:
将“Use Simulator”一项打勾,并且修改Diglog DLL和Parameter如下图所示:
然后点击调试按钮,进入调试页面:
观测左侧寄存器,R1和R2的初始状态都是0;
然后点击单步运行,一边点击一边观察。
发现,R1和R2的最终值固定在十六进制的A,相当于十进制的11。与预先估计值相同。