Ошибка сборки "unresolved external symbol" при использовании ассемблерной вставки - Assembler
Формулировка задачи:
Помогите пожалуйста исправить 2 ошибки. Очень долго мучаюсь
Error LNK2019 unresolved external symbol _calc referenced in function _main
Error LNK1120 1 unresolved externals
Задание в вложениях
#define N 4 #define _CRT_SECURE_NO_WARNINGS #include <conio.h> #include <stdio.h> extern "C" double calc(double, float, float); void main() { double A[N]; float C, D; printf("Please enter %d elements of array\n", N); for (unsigned int i = 0; i < N; ++i) { printf("A[%d] = ", i); scanf("%lf", &A[i]); } printf("C = "); scanf("%f", &C); printf("D = "); scanf("%f", &D); for (unsigned int i = 0; i < N; ++i) { printf("result: ", calc(A[i], C, D)); printf("\n"); } _getch(); }
.586 .model flat, c .data temp1 dd 0 temp2 dd 0 temp3 dd 0 temp4 dd 0 const1 dd 2.0 const2 dd 41.0 const3 dd 1.0 const4 dd 4.0 .code _calc PROC ;a[+12] c[+16] d[+20] push ebp mov ebp, esp finit fld dword ptr [ebp+16] ;c fcom dword ptr [ebp+20] ;d fstsw ax sahf ja bigger ;> fld word ptr [ebp+20] ;d fdiv word ptr [ebp+16] ;d/c fsubr const2 ;41-d/c fadd const3 ;41-d/c+1 fstp temp1 fld dword ptr [ebp+12] ;a fmul dword ptr [ebp+20] ;a*d fadd const1 ;a*d+2 fldln2 ;ln(a*d+2) fstp temp2 fmul dword ptr [ebp+16] ;ln(a*d+2) * c fdiv temp1 jmp next ;<= bigger: fld word ptr [ebp+16] ;c fdiv word ptr [ebp+20] ;c/d fsub const3 ;c/d-1 fstp temp3 fld dword ptr [ebp+20] ;d fmul const4 ;4*d fsub word ptr [ebp+16] ;4*d-c fldlg2 ;lg(4*d-c) fstp temp4 fmul word ptr [ebp+12] ;lg(4*d-c)*a fdiv temp3 next: pop ebp ret _calc ENDP END
Решение задачи: «Ошибка сборки "unresolved external symbol" при использовании ассемблерной вставки»
textual
Листинг программы
_calc PROC a_:REAL8, c_:REAL4, d_:REAL4
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д