arm编程与C语言的编程区别和方法

arm编程与C语言的编程区别和方法,第1张

ARM公司卖的arm

cpu内核给许多公司,那些公司生产出众多的ARM处理器。ARM编程实际上指的是应用ARM公司自己出产的IDE(集成开发环境)所开发进行的编程,比如现在业界常用的ADS1.2,MDK3.5等等IDE。主要进行ARM汇编和与c混合编程。

ARM公司自己规定了一套ARM指令集,也规定了一套汇编指令集。当然,我们觉得汇编编程生产效率低下,不易编写大规模程序,那么我们就可以用高级语言,比如c语言,面向对象的语言在 *** 作系统上运行。

ADD proc

arg_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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11149052.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存