Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 2
1

Вызов функции на С из программы на NASM

15.12.2017, 09:48. Показов 761. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При компиляции в SASM (пишу на nasm) выдает ошибку:
XML
1
C:\.....\Local\Temp\SASM\program.o:C:\....\Ap:(.text+0x9): undefined reference to `BubbleSort'
Подскажите, пожалуйста, в чем моя ошибка?
Код на C:
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
#include <iostream>
using namespace std;
 
extern "C" int *BubbleSort(int* m)
{
    for (int i = sizeof(m) - 1; i >= 1; i--)
        for (int j = 0; j < i; j++)
        {
            if (m[j] > m[j + 1])
            {
                int foo = m[j];
                m[j] = m[j + 1];
                m[j + 1] = foo;
            }
        }
    for (int i = 0; i < sizeof(m); ++i)
        cout << m[i] << endl;
    return m;
}
 
int main(int argc, char* argv[])
{
    return 0;
}
Код на ASM (в IDE SASM):
Assembler
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
%include "io.inc"
 
section .data
    mas db 2, 7, 3, 2, 1 
    
section .text
 
extern _BubbleSort
 
global CMAIN
CMAIN:
    mov ebp, esp; for correct debugging
 
    mov edx, [mas]
    call _BubbleSort
 
    push    EBP
    mov     EBP, ESP      
 
mov eax,[ebp+4]     ; get the address of the array
mov ebp, eax        ; BP now points to the array
mov eax, [ebp]      ; get value of first element
add eax,[ebp+2]     ;   add remaining elements
add eax,[ebp+4]
 
pop EBP
 
ret
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2017, 09:48
Ответы с готовыми решениями:

[Nasm] Вызов printf
Добрый вечер. extern printf ; the C function, to be called SECTION...

Вызов функции при закрытии программы
Можно ли сделать, чтобы при закрытии формы GraphABC вызывалась функция и закрывалась программа?

Вызов функции\метода из сторонней запущенной программы
У меня есть 2 программы: A и B. И я зная адрес в памяти, параметры функции в программе A, хочу...

Как исправить ошибки? Вызов функции из программы
1)Как исправить ошибку? function = lagrange1(x,y,xx) % x - массив координат узлов % y - массив...

0
15.12.2017, 09:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2017, 09:48
Помогаю со студенческими работами здесь

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

Ошибка в работе программы (nasm) "прекращена работа программы"
Скажите пожалуйста, почему после запуска программы .exe и ввода данных,нажатия &quot;ok&quot; выдает...

Написал аналог программы на Си на ассме NASM, но где-то ошибся
Си код: #include &lt;stdio.h&gt; void main(void) { int n, i, j, f; printf(&quot;Enter number:&quot;);...

[NASM] Ошибка "nasm error more than one input file specified type"
Начал изучать ассемблер сделал все как в методичке и зашел в тупик значит скачал я от сюда инстал...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru