Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2014, 16:55   #1
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию Реализация примера из книги

Пытаюсь реализовать пример из книги. Суть примера вызвать ассемблер функцию в С++ (Microsoft visual studio).

1. Создал проект вот код
Код:
///////////////////////////////////////////////////////////////////////////
// Ass2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

extern "C" int fcall(int i1,int i2);

int _tmain(int argc, _TCHAR* argv[])
{
	int i1,i2,i3;
	i1=1;
	i2=2;
	i3=fcall(i1,i2);

	return 0;
}
/////////////////////////////////////////////////////////

2. Написал файл fcall.asm вот код

/////////////////////////////////////////////////
Код:
.686
.model flat
public _fcall
.code
_fcall proc
push EBP
mov EBP, ESP
mov EAX, DWORD PTR [EBP+8] ;i1
sub EAX, DWORD PTR [EBP+12] ;i2
pop EBP
jmp _mul13
_fcall endp

_mul13 proc
mov EBX, 3
imul EBX
ret
_mul13 endp
end
////////////////////////////////////////////////

файл fcall.asm подключил в проект Source Files и пытаюсь вызвать. но выдает ошибки
1.
Ass2.obj : error LNK2019: unresolved external symbol _fcall referenced in function _wmain
2.
D:\My Documents\Project Cpp\Ass\Ass2\Debug\Ass2.exe : fatal error LNK1120: 1 unresolved externals

ЧТО не ТАК !!! Спасибо

Последний раз редактировалось Stilet; 16.10.2014 в 17:21.
AlexVI вне форума Ответить с цитированием
Старый 17.10.2014, 08:38   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Вот вам простейший проект со связью си и ассемблера. Вставляйте свой код.
Вложения
Тип файла: rar asm_link.rar (2.1 Кб, 11 просмотров)
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 17.10.2014, 14:00   #3
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию

alexcoder спасибо большое... все получилось свой код подправил по аналогии все нормально. Да еще необходимо было в свойствах проекта в Custom Build Rule добавить правила компоновки для Microsoft Macro Assembler. всем спасибо пойдем дальше ...

как мне преобразовать имеющиеся файлы чтоб скомпилить под 64 разр машину

Последний раз редактировалось Stilet; 17.10.2014 в 18:39.
AlexVI вне форума Ответить с цитированием
Старый 18.10.2014, 11:58   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Цитата:
Сообщение от AlexVI Посмотреть сообщение
как мне преобразовать имеющиеся файлы чтоб скомпилить под 64 разр машину
всего-то
  1. получить элементарные знания о long mode
  2. заменить регистры EAX, EBX, ECX и т.д. на RAX, RBX, RCX
  3. использовать новые соглашения о передаче аргументов для fastcall-функций
  4. использовать сотню новых появившихся инструкций
  5. ну, и так, по мелочи...
Mikl___ вне форума Ответить с цитированием
Старый 23.10.2014, 16:14   #5
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию

спасибо а подскажите толковую литературу с примерами. Чтоб я мог реализовать пример выше Спасибо ...
AlexVI вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3 примера (BASIC,C++) Olafson Помощь студентам 7 26.04.2012 19:19
2 примера по языку Си Gargona Помощь студентам 11 10.11.2011 10:14
Ошибка при компилировании примера из книги zipwind Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 06.06.2011 21:42
Memo и решение примера rabbitsnew Общие вопросы Delphi 2 16.10.2010 14:58
Решение мат. примера Kashp Помощь студентам 2 21.09.2008 11:19