Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
#1

Подпрограммы на ассемблерских вставках на c++ - C++

02.06.2009, 00:45. Просмотров 523. Ответов 4
Метки нет (Все метки)

Я делаюна assembler подпрограмму.
Главная программа имеет такой вид:
Этот фрагмент должен складывать 2 числа
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
extern "C" int _stdcall func1 (int, int);
int main ()
{
    cout << func1 (30, 53) << endl;
    return 0;
}
Потом я создаю текстовый файл, копирую в него следующий код:
Assembler
1
2
3
4
5
6
7
8
9
10
.386
.model flat
.data
.code
func1 proc stdcall, a: dword, b: dword
mov eax, a
add, eax, b
ret 8
func1 endp
end
Добавляю его в проект через Project/Add existing item, и переименовываю его прямо в программе или до того как добавляю в проект в func1.asm. Расширение соответственно становится не txt, а asm.
Компилятор выдаёт такие ошибки:
Код
asm.obj : error LNK2001: unresolved external symbol _func1@8
C:\Temp\asm.exe : fatal error LNK1120: 1 unresolved externals
Не знаю, насколько такой способ верен, по крайней мере мне так сказали делать.
Возможно имеются ошибки в оформлении самой подпрограммы, но ошибки вызодят прямо на этапе линковки.
Скажите, в чём ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2009, 00:45     Подпрограммы на ассемблерских вставках на c++
Посмотрите здесь:

на подпрограммы - C++
вычислить площадь правильного шестиугольника со стороной а, используя подпрограмму вычисления площади треугольника. задачка на функции

Подпрограммы - C++
Создать подпрограмму-функцию, позволяющую выполнять действия.Нахождение произведения трех целых чисел или суммы двух...

ПОДПРОГРАММЫ - C++
добрый вечер!;) такое задание: дана функция y=.... в которой есть несколько сумм ряда. Вычисление суммы ряда нужно выполнить в виде...

Подпрограммы - C++
Напишите подпрограмму, которая определяет, является ли введенный символ гласной буквой русского или латинского алфавита. можно...

Подпрограммы - C++
Добрый день.Можете помочь написать 2 программы в borland C++ Помогите пожалуйсто.Заранее благодарен! 1)Создать подрограмму,которая...

подпрограммы - C++
протабулируйте функции.отрезок и шаг вводятся с клавиатуры: (ln^2(x))-1/x

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
02.06.2009, 00:56     Подпрограммы на ассемблерских вставках на c++ #2
так а кто за тебя компилировать асмовский файл будет, тебе надо его скомпилировать в obj, а студийный линкер его уже подцепит, должно быть так
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
02.06.2009, 01:00  [ТС]     Подпрограммы на ассемблерских вставках на c++ #3
А можно подробнее, как это сделать?
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
02.06.2009, 01:20     Подпрограммы на ассемблерских вставках на c++ #4
я честно не очень уверен что это должно быть так но предполагаю:
1. берешь асмовский компилятор, компилируешь *.asm в obj, не линкуя программу, может быть компилятор и линковщик будет в одном флаконе, тогда какая-нить опция нужна, но смысл в получении объектного файла
2. кладешь его в папку из которой компилируешь сишный файл, должно быть линковщик его сам подцепит, хотя не факт, возможно надо будет в опциях прописать
наверняка не скажу ,так как такое проделывал в gcc, с заданием всего из консоли, в студии не пробовал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2009, 00:36     Подпрограммы на ассемблерских вставках на c++
Еще ссылки по теме:

Подпрограммы - C++
Дан вектор А и вектор B. Если разность между максимальными элементами векторов больше 10, то из положительных элементов обеих векторов...

Подпрограммы - C++
Помогите ребят

Подпрограммы - C++
С клавы вводится длинное целое число. надо составить функцию, которая формирует новое число с обратным порядком цифр по отношению к...

Подпрограммы - C++
Такой простенький вопросик - как вызвать из одной подпрограммы в другую переменую, точнее даже масив?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
03.06.2009, 00:36  [ТС]     Подпрограммы на ассемблерских вставках на c++ #5
Спасибо. Разобрался сам. Я просто не так добавлял файл.
Yandex
Объявления
03.06.2009, 00:36     Подпрограммы на ассемблерских вставках на c++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru