Assembly

CPU 通常有兩個重要的暫存器

指令週期

  1. Fetch
    1. 從記憶體取得指令
    2. Program counter += 1
  2. decode
  3. Execute

Arm

x86/x64

prologue

存好 old ebp 之後,用新的 esp 當 ebp

calling convention

X86 會 alignment 0x10 ,所以你在反組譯的時候會看到 call 之前會先 sub 某個數值(似乎是 GCC 的設計?),之後 push 總和會是 0x10

對於 x32 位元模式必須遵循 System V i386 ABI,在調用前確保 alignment 0x10

前一個 function stack frame 會增加

下一個 function 的 stack frame 存放

暫存器

指令

參見

各種架構的 opcode


Assembly