我最近开始学习ARM程序集编程,
今天我遇到了烦人的问题,当我使用r4寄存器时我的程序开始崩溃。
使用这个简单的代码,程序运行良好
.text
.align 2
.global arr
.type arr, %function
arr:
mov r3, #8
mov r0, r3
bx lr
.size arr, .-arr
但是改为r4它会崩溃
.text
.align 2
.global arr
.type arr, %function
arr:
mov r4, #8
mov r0, r4
bx lr
.size arr, .-arr
我到底做错了什么? 它在ARM文档中明确指出:
在所有ARM处理器中,可以使用以下寄存器 可在任何处理器模式下访问:13个通用寄存器R0-R12 Source
关于'answer'的假设“重复”问题根本没有帮助,因为那里的每个人都将r4(我遇到的问题)归类为其他人(r5,r6,......我没有问题) )。
我正在寻找解释为什么特别使用r4引起这个问题,我没有使用r4寄存器的问题,而r4寄存器应该与r4(r5,r6,r7,r8)的类型相同。