Я хочу прочитать регистр с именем x0 в arm64 (не x86_64), используя язык Си.Какой самый лучший способ (без ошибок и переносимость?)
Я ищу всю сеть, я просто нахожу несколько способов:
register int *foo asm ("a5"); //1
register int foo asm ("a5"); //2 which right?
или
intptr_t sp;
asm ("movl %%esp, %0" : "=r" (sp) ); //3
ПервыйКстати, есть некоторые ошибки, я думаю.х0 в arm64 это 64 бит.Я думаю, что int * f не может содержать 64-битный адрес.
Второй способ для x86.Кажется, не работает сделать это следующим образом:
asm ("movl %x0, %0" : "=r" (sp) );
Так, как правильно читать регистр в C