arm汇编中不能使用,不能对r13操作的问题
汇编源代码,实现fft计算
http://read.pudn.com/downloads88/sourcecode/embed/337426/arm_fft/src/ffts.s__.htm
以前也是这样使用的,且使用正常,代码相同,好像与传入这函数的参数无关,主要是在这里突然出现使用r13就data abort了
反汇编代码(部分)如下
320289a4 [0xe28aa00c] add r10,r10,#0xc
320289a8 [0xe8aa00f8] stmia r10!,{r3-r7}
320289ac [0xe89a33f0] ldmia r10,{r4-r9,r12,r13}-这句出现data abort异常 把r13去掉后正常
320289b0 [0xe0844006] add r4,r4,r6
320289b4 [0xe0855007] add r5,r5,r7
320289b8 [0xe0446086] sub r6,r4,r6,lsl #1
320289bc [0xe0457087] sub r7,r5,r7,lsl #1
320289c0 [0xe088800c] add r8,r8,r12
320289c4 [0xe089900d] add r9,r9,r13-这句没事
320289c8 [0xe049308d] sub r3,r9,r13,lsl #1
320289cc [0xe048c08c] sub r12,r8,r12,lsl #1
320289d0 [0xe0844008] add r4,r4,r8
320289d4 [0xe0855009] add r5,r5,r9
320289d8 [0xe0448088] sub r8,r4,r8,lsl #1
320289dc [0xe0459089] sub r9,r5,r9,lsl #1
320289e0 [0xe0866003] add r6,r6,r3
320289e4 [0xe047700c] sub r7,r7,r12
320289e8 [0xe087d08c] add r13,r7,r12,lsl #1-这句对r13操作的也出现data abort异常
320289ec [0xe046c083] sub r12,r6,r3,lsl #1
320289f0 [0xe28aa010] add r10,r10,#0x10
320289f4 [0xe88a3300] stmia r10,{r8,r9,r12,r13}
320289f8 [0xe51a3024] ldr r3,[r10,#-0x24]
...全文
相关推荐
ARM汇编与C语言混合编程.ppt
同时,内嵌汇编的使用可以优化程序性能,但需要小心处理与C语言的兼容性和安全性问题。
C及汇编语言的混合编程PPT课件.pptx
本课件主要介绍了如何在C/C++程序中混合使用ARM汇编语言,以及如何进行C/C++程序与汇编程序之间的交互。首先,我们来看5.1章节中提到的ARM C/C++编译器。
嵌入式习题集(大学、研究生、考博)
错误选项C和D指出汇编程序中不能调用C语言函数以及嵌入汇编指令不能使用C变量,这两个说法是错误的,实际上在C代码中可以嵌入汇编指令,并且在汇编程序中可以调用C函数。3.
ARM汇编ADR,LDR等伪指令
在编写ARM汇编代码时,理解这些指令和伪指令的区别至关重要,它们可以帮助编写出高效且可移植的代码。
ARM汇编语言官方手册(中文).pdf,arm汇编语言手册中文版,Asm
**寄存器**: ARM处理器有多个通用寄存器(例如R0-R15),其中R13通常用作堆栈指针,R14用作链接寄存器,R15用作程序计数器(PC)。3.


驱动开发/核心开发
