我試圖將r0-r5傳遞給函數check
。但是隻有寄存器r0-r3被引用複製。在我的主要功能,我有這個代碼。具有4個以上寄存器的函數調用ARM程序集
push {lr}
mov r0, #1
mov r1, #2
mov r2, #3
mov r3, #4
mov r4, #5
mov r5, #6
bl check
pop {lr}
bx lr
在我的check
功能我有這個代碼。這是在一個單獨的文件還不能肯定,如果該事項
m: .asciz "%d, %d ~ (%d, %d, %d)
...
push {lr}
ldr r0, =m
bl printf
pop {lr}
bx lr
這個輸出是2, 3 ~ (4, 33772, 1994545180)
。我想學習大會,所以你可以請解釋一些谷歌搜索的答案我知道我需要使用堆棧,但是,我不知道如何使用它,並想學習如何。提前致謝。
如果您不太熟悉所涉及的所有內容,可能會有點困難,但參考您可以找到EABI調用約定的官方定義[http://infocenter.arm.com /help/topic/com.arm.doc.ihi0042e/index.html)。 – Notlikethat