ARM程序1+2+3+4+…+100的写法

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: ARM程序1+2+3+4+…+100的写法

第一个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

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: ARM程序1+2+3+4+…+100的写法

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: