gpt4 book ai didi

c - 将汇编语言翻译成 C

转载 作者:行者123 更新时间:2023-12-02 01:43:38 25 4
gpt4 key购买 nike

我现在正在复习期中练习。这个问题给出了一段汇编代码(IA32)并指示编写它的 C 等价物。只是想确保我做的正确。谢谢!

给出的汇编程序:

.global _someOperation
_someOperation:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %ebx
movl 12(%ebp), %edx
decl %edx
xorl %esi, %esi
movl (%ebx, %esi, 4), %eax
continue:
incl %esi
cmpl (%ebx, %esi, 4), %eax
jl thelabel
movl (%ebx, %esi, 4), %eax
thelabel:
cmp %esi, %edx
jne continue
movl %ebp, %esp
popl %ebp
ret

这是我写的代码:

void someOperation(int *num, int count)  //Given
{
int k; //Given
count--;
int i = 0;
k = num[i];
i++;
while(count != i)
{
if(k >= num[i]
k = num[i];
i++;
}
return (k);
}

最佳答案

看起来很接近我,虽然在 ASM 中增量只在循环的开始,并且第一次通过时不检查条件。考虑改用 DO...WHILE。

编辑:另外,您的作业是错误的。 MOV 指令从第二个参数复制到第一个参数。您在 C 代码中采用了相反的方式。

关于c - 将汇编语言翻译成 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26964119/

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