Langues: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية
Pour les lecteurs non familiers avec ARM64, focalisé sur les instructions générées par le compilateur dyncode.
1–7. Registres, branches, adressage PC-relatif, chargement d'immédiats, accès mémoire, arithmétique, comparaisons
Registres généraux x0-x30 (64-bit) / w0-w30 (32-bit), sp, xzr/wzr. Convention AAPCS64. b/bl/br/blr/ret. DynCode doit éviter bl (relocalisation BRANCH26). adr/adrp+add. mov+movk pour 64-bit — cœur de Data2TextPass.
Calcul pur, Fibonacci récursif, inlining de chaîne sur pile (Data2TextPass), syscall (SyscallStubPass svc directe). Flux d'instructions 100% dans __TEXT,__text.
| Concept | x86_64 | ARM64 | DynCode |
|---|---|---|---|
| Appel fonction | call rel32 |
bl imm26 |
Extracteur patche BRANCH26 |
| Chargement adresse | lea rax,[rip+sym] |
adrp+add |
PAGE21/PAGEOFF12 patchés |
| Immédiat 64-bit | mov rax,imm64 |
mov+movk ×4 |
Zéro relocalisations |
| Syscall | syscall |
svc #0x80 |
Darwin : x16=nr |