
cpu内核给许多公司,那些公司生产出众多的ARM处理器。ARM编程实际上指的是应用ARM公司自己出产的IDE(集成开发环境)所开发进行的编程,比如现在业界常用的ADS1.2,MDK3.5等等IDE。主要进行ARM汇编和与c混合编程。
ARM公司自己规定了一套ARM指令集,也规定了一套汇编指令集。当然,我们觉得汇编编程生产效率低下,不易编写大规模程序,那么我们就可以用高级语言,比如c语言,面向对象的语言在 *** 作系统上运行。
ADD procarg_C equ 0xC
arg_8 equ 8
arg_4 equ 4
arg_0 equ 0
MOV R12, SP
STMFD SP!, {R0-R3}四个参数
STMFD SP!, {R4-R10,R12,LR}
SUB SP, SP, #0x10
LDR R0, [SP,#0x34+arg_0]
LDR R1, [SP,#0x34+arg_4]
LDR R2, [SP,#0x34+arg_8]
ADD R0, R0, R1
ADD R0, R0, R2
ADD SP, SP, #0x10
LDMFD SP, {R4-R10,SP,PC}
ENDP
如果参数传递大于 4 个,那么你在 BL 的地方应使用:
....
STRR0, [SP,#0x8]第七个
STRR0, [SP,#0x4]第六个
STRR0, [SP,#0x0]第五个
============================================
我理解你的意思了
LDR r0,=0x1
LDR r1,=0x2
LDR r2,=0x3
BL add
改为:
LDR r0,=0x1
STRR0, [SP,#0x0]
LDR r1,=0x2
STRR1, [SP,#0x4]
LDR r2,=0x3
STRR2, [SP,#0x8]
BL ADD
你是这个意思吧?
------------
int a = R0
int b = R1
int c = R2
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)