我試圖將我的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