Какой есть аналог ret в ARM32 ассемблере?
В отличие от arm64, в armhf нету инструкции ret, чтобы вернуться из функции. Да вот проблема: я не нашёл рабочего кода для возвращения из функции. Я пробовал отсюда, но ничего не помогло.
Код C:
extern void asmfunc();
int main() {
asmfunc();
return 0;
}
Код ASM:
.data
tekst:
.string "It works!"
len = .-tekst
.text
.global asmfunc
asmfunc:
push {r3, r4, lr}
mov r0, #1
ldr r1, =tekst
ldr r2, =len
mov r7, #64
swi 0
pop {r3, r4, pc}
Makefile:
all:
@arm-linux-gnueabi-as asm.S -o asm.o
@arm-linux-gnueabi-gcc -c code.c -o code.o
@arm-linux-gnueabi-gcc code.o asm.o -o run
/tmp # ./run
bash: /tmp/run: No such file or directory # [с правами все ок]