ARM 어셈블러로 작성된 간단한 함수가 있습니다. 처음 실행하면 모든 것이 원하는대로 작동합니다 (BOOT\n
). 그러나 두 x 째 기능이 실행될 때 아무 것도 인쇄되지 않습니다.ARM 어셈블리 기능에 문제가 있습니까?
.globl __printTest
.text
.align 2
__printTest:
sub sp, #64 /* yes, I know this is too much */
mov r0, #66
str r0, [sp]
mov r0, #79
str r0, [sp, #1]
mov r0, #79
str r0, [sp, #2]
mov r0, #84
str r0, [sp, #3]
mov r0, #10
str r0, [sp, #4]
mov r0, #0
mov r1, sp
mov r2, #5
bl _write
add sp, #64
bx lr
무엇이 문제 일 수 있습니까? 나는 이것이 어떻게 든 더 이상 작동하지 않는 버퍼를 망가 뜨리는 것으로 의심한다. 쓰기는 svc
명령어를 사용하여 Linux에서 write
시스템 호출을 호출하는 함수입니다.
고마워요! 이것은 효과가 있었다. –