簡體   English   中英

C轉ARM匯編程序

[英]Convert C to ARM Assembly program

我有這個 C 程序:

void Move1Disk(int fm, int to);

void Hanoi(int num, int fm, int to, int aux)
{
    if (num > 1) Hanoi(num - 1, fm, aux, to) ;
    Move1Disk(fm, to) ;
    if (num > 1) Hanoi(num - 1, aux, to, fm) ;
}

我寫了這個但無法編譯,誰能告訴我這個問題?

Hanoi(int, int, int, int):
        cmp     r0, #1
        push    {r4, r5, r6, r7, r8, lr}
        mov     r5, r1
        mov     r7, r2
        movgt   r4, r0
        movgt   r6, r3
        ble     .L9
.L3:
        sub     r4, r4, #1
        mov     r0, r4
        mov     r3, r7
        mov     r2, r6
        mov     r1, r5
        bl      Hanoi(int, int, int, int)
        mov     r1, r7
        mov     r0, r5
        bl      Move1Disk(int, int)
        cmp     r4, #1
        beq     .L2
        mov     r3, r5
        mov     r5, r6
        mov     r6, r3
        b       .L3
.L9:
        mov     r6, r1
.L2:
        mov     r1, r7
        mov     r0, r6
        pop     {r4, r5, r6, r7, r8, lr}
        b       Move1Disk(int, int)

在這里我包括了主要的主要方法

以及錯誤消息的圖片:[錯誤信息]

在第一行:

Hanoi(int, int, int, int):

C 函數的名稱中沒有參數類型。 如果你真的想復制一個 C 程序,這應該只是Hanoi: 對於那個和Move1Disk的所有其他實例都是一樣的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM