第一个ARM的程序,纪念下. 开发环境:Mdk 4.2 + Jlink调试
题目:计算 1+2+3+4+...+100.
COUNT EQU 0x30003100 ;EQU类似C语言中的define,定义一个宏,即COUNT就是0x30003100
AREA asm_test1, CODE, READONLY ;声明代码段
ENTRY ;程序入口
CODE32 ;arm的32位指令
START LDR R1, =COUNT ;将COUNT加载给R1
MOV R0, #0x0 ;赋值R0为0
STR R0, [R1] ;将R0的值写入R1,R1现在值为零
MOV R3, #0X0 ;定义一个初始的递增值
MOV R4, #100 ;定义循环控制数100
LOOP LDR R1, =COUNT ;加载0x30003100地址
LDR R0, [R1] ;将0x30003100数据读到R0
ADD R3, R3, #0x1 ;R3++
ADD R0, R0, R3 ;算法
STR R0, [R1] ;将R0写到R1地址
CMP R4, R3 ;比较R4跟R3的大小
BGT LOOP ;如果R4大于R3,接着循环,否则跳出
NOP
NOP
END
结果是5050,16进制是0X13BA
文章的脚注信息由WordPress的wp-posturl插件自动生成