Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
alena_msk
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 5
1

Как функцию C++ вызвать в masm

27.11.2012, 17:36. Просмотров 1096. Ответов 4
Метки нет (Все метки)

Собственно есть функция на с++,нужно ее вызвать в аsm.
использую masm(который встроенный в visual studio),как это примерно осуществляется?
все пишется в .cpp или и в .cpp ,и в .asm?
вот код на с++:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream> 
#include <locale> 
using namespace std;
int main()
{
    setlocale(0,"Rus");
    int n;
    int i;
    cout<<"\nВведите размер массива\t";
    cin>>n;
    int *data=new int[n];
 
    //заполнение массива случайными числами
    srand(time(NULL));
    for (i=0;i<n;i++)
    {
        data[i]=rand()%100;
        cout<<" "<<data[i];
    }
    cout<<"\n";
    
    //сортировка с двоичным включением
    for(i=1;i<n;i++) 
    {
        int c=data[i];      // Вставляемое значение
        // Организация поиска места для вставки значения c
        int low=0,high=i;
        // (low <= high) && место для c - внутри data[low:high]
        while(low<high) 
        {
            int m=(low+high)>>1;
            //low<=m<high
            if (data[m]<c)  low=m+1; 
            else high=m;
        }
        // Найдено место вставки - low
        // Сдвигаем элементы в сторону больших индексов.
        for (int j=i-1;j>=low;j--) 
        {
            data[j+1]=data[j];
        }
        // Заносим значение на найденное место
        data[low]=c;
        //cout<<"\n\t\t"<<i<<"\t\t\t\n";
    }
 
    //вывод результата
    cout<<"\n\nОтсортированный массив\n";
    for(i=0;i<n;i++)
    {
        cout<<" "<<data[i];
    }
    cout<<"\n";
 
 
    system("pause");
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 17:36
Ответы с готовыми решениями:

Можно ли реализовать перегруженную функцию на masm?
Добрый вечер. Подскажите, можно ли реализовать перегруженную функцию на MASM? В оптимале - при...

Используя соглашение stdcall вызвать функцию на ассемблере
надо используя соглашения stdcall вызвать функцию на ассемблере и используя соглашения cdecl и...

Masm 10 создать форму как?
Подскажите надо создать форму на масм 10, откомпелировать и получить приложение с кнопками,...

Компилятор MASM как пользоваться
установил masm32, процесс установки шел в консольном режиме и в завершении на рабочем столе...

Есть программа на masm, как получить исходник?

4
Kastaneda
Jesus loves me
Эксперт С++
5037 / 3056 / 349
Регистрация: 12.12.2009
Сообщений: 7,719
Записей в блоге: 2
Завершенные тесты: 1
28.11.2012, 15:42 2
Цитата Сообщение от alena_msk Посмотреть сообщение
Собственно есть функция на с++,нужно ее вызвать в аsm.
Конкретизируй задачу. По "левому" С++ коду ни чего не понятно, что где нужно вызвать.
А так есть инструкция call, при помощи нее можно вызвать процедуру. Только сначала нужно передать аргументы согласно конвенции вызова вызываемой функции, а после очистить стек, если нужно.
0
alena_msk
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 5
28.11.2012, 17:18  [ТС] 3
из asm вызвать сишную ф-цию main например,ну или хотя бы чисто для начала:
C++
1
2
3
4
void hello()
{
    cout<<"\nПривет,мир!\n";
}
0
Kastaneda
Jesus loves me
Эксперт С++
5037 / 3056 / 349
Регистрация: 12.12.2009
Сообщений: 7,719
Записей в блоге: 2
Завершенные тесты: 1
28.11.2012, 17:58 4
ну как-то так
Assembler
1
call hello
только в masm наверное нужно, чтоб предварительно был объявлен прототип этой ф-ции. А может и не нужно, я masm плохо знаю.
1
alena_msk
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 5
29.11.2012, 18:46  [ТС] 5
Kastaneda, спасибо.
прототип объявлять не нужно.
надеюсь этого препод хотел..
0
29.11.2012, 18:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2012, 18:46

Как написать на masm под х86 функцию поиска кол-ва вхождений последовательности байт в большом массиве байт?
Привет! В общем читаю я файл (большой) и хочу найти кол-во вхождений в этот файл некоторой...

Как установить MASM
Ребят помогите установить MASM32 на windows 64. Скайп: neoore. Либо в лс на форуме.

Как пользоваться MASM
Начал читать книжку О.Калашникова - в ней для компиляции программ используется MASM, но найти какой...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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