Я программирование сборки x86 в Visual Studio 2012.Как вызвать функцию C от сборки
Я пытаюсь вызвать Printf из программы сборки, но он выдает ошибку, как только я включаю EXTERN линию , Вероятно, это что-то действительно глупое, включая библиотеку функций C, но я не могу найти ни одного онлайн-ресурса, который подскажет мне, как это сделать правильно.
Вот мой код:
.model flat
EXTERN _printf
.data
digits byte "0" dup (10), 0
.code
main proc
lea eax, digits
push eax
call _printf
add esp, 4
main endp
END
И ошибка брошена является:
error A2008: syntax error : in directive
на линии 3 (линия с EXTERN)
EDIT: Добавлена информация об окружающей среде (первый линия).
Это компилятор и ассемблер специфическое, но сказал, единственное, что выглядит иностранным является 'EXTERN' вместо' extern' и некоторые сборщики требователен 'printf' вместо' _printf' но большинство обрабатывать как , Как вы компилируете? Собрать, связать с 'ld' (вручную) или вызвать' gcc' для обоих? –
Я уже пробовал все это. Я использую Visual Studio 2012. Я не уверен, как он собирается, но это консольное приложение x86. – DroidFreak36
['EXTERN _printf: proc'] (https://msdn.microsoft.com/en-us/library/vstudio/7cycf5bc.aspx) – rkhb