Моя цель - использовать Xcode (10.2-beta) для написания C и Assembly для MacOS (14.1);Я хочу использовать NASM вместо стандартного компилятора GNU, синтаксис GAS довольно ужасен.
Кстати, хотя я настроил Xcode для использования NASM, как вы увидите ниже, я подозреваю,он не используется!
Я построил свой проект с использованием компилятора GNU.Работает нормально.
// main.c
# include <stdio.h>
int myOperation(int a, int b);
int main(int argc, char * argv[]) {
// insert logic here
int x = 10;
int y = 12;
int z = myOperation(x, y);
printf("The sum of %d and %d is %d\n", x, y, z);
return 0;
}
// assembly.s
.text
.globl _myOperation
_myOperation:
add %esi, %edi
mov %edi, %eax
ret
Я установил инструменты командной строки XCode и изменил правила сборки для компиляции файлов NASM.Файл C такой же:
// assembly.s
.text
.globl _myOperation
_myOperation:
add edi, esi
mov eax, edi
ret
Строительные правила
Я получаю следующие ошибки:
/Users/rodrigomattososilveira/projects/asm/NASM Tutorial/Tutorial_01AA/Tutorial_01AA/assembly.s:12:5: error: unknown use of instruction mnemonic without a size suffix
add edi, esi
^
/Users/rodrigomattososilveira/projects/asm/NASM Tutorial/Tutorial_01AA/Tutorial_01AA/assembly.s:13:5: error: unknown use of instruction mnemonic without a size suffix
mov eax, edi
^
Command CompileC failed with a nonzero exit code
Некоторые изссылки, которые я проверил: