stwu r1, -32(r1) // 32 bytes of space for this function
mflr r0
stw r0, 36(r1) //stores link register
stw r30, 24(r1) // ??
stw r31, 28(r1) // Probably makes space for r31?
mr r31, r1 // r31 = stack pointer
這是這個函數的開始,在上面的代碼中它將r30存儲在內存中的某處,並且每個函數都以這種方式開始。但r31和r30都不在寄存器中保存任何值。存儲它有什麼意義?這在PowerPC中意味着什麼?
也許堆棧幀設置。 r30和r31可能是返回參數。 – Chet
@Chet r30和r31不是返回參數。通常使用r31來安裝堆棧幀。我不知道爲什麼r31收到堆棧指針。關於r30,它在函數的後面肯定會用作局部變量。 @ user3287975您應該查找與'prolog'關鍵字相關的信息。 – amigadev