c - 将 C 转换为 ARM 汇编程序
问题描述
我有这个 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:
. 对于 that 和 的所有其他实例也是如此Move1Disk
。
推荐阅读
- python - 如何减去变量
- javascript - 如果我更改了数字输入的格式,闪亮的书签不起作用
- php - 如何在 sql server 上的列名称为阿拉伯语时获取数据?
- terraform - 有没有办法将多个角色附加到单个策略?
- c++ - 使用 Armadillo C++ 加载稀疏矩阵
- mysql - 显示特定城市本月尚未创建项目的用户
- regex - How to put a space between hyphen and next character unless it's a multi-word?
- r - 查找方程以拟合非线性非参数模型
- javascript - IE 11 不支持方法“来自”
- git - 我可以在 Azure DevOps 上更改 Git 全局配置吗