gpt4 book ai didi

将 C 函数转换为 ARM 汇编语言

转载 作者:太空宇宙 更新时间:2023-11-03 23:40:55 25 4
gpt4 key购买 nike

如何将这个 C 程序转换成汇编代码?我很难理解 unsigned int 操作。

unsigned int sum(unsigned int n){
if(n==0) return 0;
else return n+sum(n-1);
}

如果考虑int,我已经这样做了。如何考虑unsigned int

sum:
SUB sp, sp, #8
STR lr, [sp,#4]
STR r0, [sp,#0]
CMP r0,#0
BGE L1
MOV r0, #0
ADD sp, sp, #8
MOV pc, lr
L1: SUB r0, r0, #1
BL sum
MOV r12, r0
LDR r0, [sp,#0]
LDR lr, [sp,#4]
ADD sp, sp, #8
ADD r0, r0, r12
MOV pc, lr

最佳答案

对于 unsigned int 指令来说无关紧要,因为 ADD 和 SUB 在这两个指令中的行为都是正确的。

一些 ISA 提供无符号 ADD 和 SUB(ADDU 和 SUBU)作为 MIPS,它们仅在溢出行为上有所不同。

关于将 C 函数转换为 ARM 汇编语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46250884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com