어셈블러에서 C에서 사용할 함수를 만들려고합니다. 제 문제는 코드를 컴파일 할 수 없다는 것입니다. 나는 Visual studio 2012를 사용하고 있습니다. 나는 custiomization을 빌드 할 때 masm을 추가 했으므로 아이디어가 잘못되었습니다. C :해결되지 않은 외부 기호 C++ with Assembler
#include <stdio.h>
int szukaj_max (int a, int b, int c);
int main()
{
int x, y, z, wynik;
printf("\nProszępodaćtrzy liczby całkowite: ");
scanf_s("%d %d %d", &x, &y, &z, 32);
wynik = szukaj_max(x, y, z);
printf("\nSpośród podanych liczb %d, %d, %d, \ liczba %d jest największa\n", x,y,z, wynik);
return 0;
어셈블리 :
.686
.model flat
public _szukaj_max
.code
_szukaj_max PROC
push ebp ; zapisanie zawartości EBP na stosie
mov ebp, esp ; kopiowanie zawartości ESP do EBP
mov eax, [ebp+8] ; liczba x
cmp eax, [ebp+12] ; porownanie liczb x i y
jge x_wieksza ; skok, gdy x >= y
; przypadek x < y
mov eax, [ebp+12] ; liczba y
cmp eax, [ebp+16] ; porownanie liczb y i z
jge y_wieksza ; skok, gdy y >= z
; przypadek y < z
; zatem z jest liczbąnajwiekszą
wpisz_z:
mov eax, [ebp+16] ; liczba z
zakoncz:
pop ebp
ret
x_wieksza:
cmp eax, [ebp+16] ; porownanie x i z
jge zakoncz ; skok, gdy x >= z
jmp wpisz_z
y_wieksza:
mov eax, [ebp+12] ; liczba y
jmp zakoncz
_szukaj_max ENDP
END
오류 :
당신은 파일 이름을 가지고Error 2 error LNK2019: unresolved external symbol "int __cdecl szukaj_max(int,int,int)" (? [email protected]@Y[email protected]) referenced in function _main C:\Users\Kaczor\Desktop\Ako\4.1\4.1\Source.obj
Error 3 error LNK1120: 1 unresolved externals C:\Users\Kaczor\Desktop\Ako\4.1\4.1\Debug\4.1.exe 1
"extern"C "int szukaj_max (int a, int b, int c);를 시도하십시오. – Jester