Я начинаю изучать ассемблер только сегодня и использую masm.Я попытался напечатать hello world, используя msdn api
, вот мой код:
1 .386
2 .model flat, stdcall
3 option casemap :none
4
5 include \masm32\include\kernel32.inc
6 include \masm32\include\masm32.inc
7 includelib \masm32\lib\kernel32.lib
8 includelib \masm32\lib\masm32.lib
9
10 .data
11 stroutput db "Hello World",0
12
13 .code
14 main:
15 push stroutput
16 call printf ; print hello world
17 add esp, 4
18 end main
, но я получил ошибку:
hello.asm (15):ошибка A2070: недопустимые операнды инструкции
hello.asm (16): ошибка A2006: неопределенный символ: _printf
РЕДАКТИРОВАТЬ Я пытался изменить свой код на основе предложений:
.686
.model flat, stdcall
EXTERN printf : proc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
msgCaption db 'Try', 0
.code
Main:
push offset msgCaption
call printf
push eax
End Main
но все равно получена ошибка: hello.obj: ошибка LNK2001: неразрешенный внешний символ _printf