我试图将我的C代码转换成汇编而不使用gcc -S函数,因为我想自己练习汇编。出于某种原因,我不能让我的程序集文件匹配我的C代码,我找不到原因。这是我写的,C代码是正确的,但汇编代码不能编译。这是sparc程序集顺便说一句。C到汇编转换问题
#include <stdio.h>
int charCompare(const void *ptr1, const void *ptr2)
{
char i = *((char *)ptr1);
char j = *((char *)ptr2);
if (i > j)
return (1);
if (i < j)
return (-1);
return (0);
}
这里是所谓的等效汇编代码。
.global charCompare !makes the function globally usable
.section ".text"
charCompare:
save %sp, -96, %sp !save caller's window; if different than -96
cmp i1, i2 !compare i1 with i2
bg returnpos !if i1 is greater than i2 jump to returntrue
cmp i1, i2 !compare i1 with i2
bl returnneg
returnneg:
set -1, %o0
ba end
returnpos:
set 1, %o0
ba end
end:
ret
restore
什么是错误? – Linuxios
以及我正在运行一个makefile文件,以及其他文件,由于某种原因与c文件编译,但与它出现错误。 –
你会得到什么错误? – Linuxios