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

Вызов функций на Ассемблере в программе на С++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Графы http://www.cyberforum.ru/cpp-beginners/thread306663.html
помогите с реализацией алгоритма Дейкстры для нахождения расстояния от узла 1 в каждый узел. матрица весов такая W={{0,4,0,3,1},{4,0,2,0,2},{0,2,0,1,6},{3,0,1,0,1},{1,2,6,1,0}}
C++ Убрать предупреждения на break в операторе switch(...) Никак не пойму, как можно перекроить этот код: //*************************************************************************** unsigned long flength (unsigned short type, unsigned long length) { switch(type) { case 1: return (sizeof(BYTE)*length); break; http://www.cyberforum.ru/cpp-beginners/thread306662.html
C++ Написать программу на удаляющую из строки символы с5 по 12.
Написать программу на удаляющую из строки символы с5 по 12. P.S. Убедительная просьба надо написать на С а не на С++
Найти количество строк матрицы, среднее арифметическое элементов которых меньше заданной величины C++
Преобразовать матрицу заданную в обычном виде в треугольную!(методом гаусса) Найти количество строк, среднее арифметическое элементов которых меньше заданной величины. P.S. убедительная просьба надо написать на С а не на С++
C++ Сжать массив, удалив из него все элементы, которые лежат в интервале [a,b]. Освободившиеся в конце элементы массива заполнить нулями. http://www.cyberforum.ru/cpp-beginners/thread306655.html
У меня такая проблема: Сжать массив, удалив из него все элементы, которые лежат в интервале . Освободившиеся в конце элементы массива заполнить нулями. P.S. Убедительная просьба написать надо на С а не на С++!
C++ Что за файл с раширением awx? по моему связано с mfc? подробнее

Показать сообщение отдельно
РагнаР
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 27
28.05.2011, 02:23     Вызов функций на Ассемблере в программе на С++
Помогите,пожалуйста.
Нужно написать программу, состоящую из ассемблерной функции в одном файле и вызове её в главном файле на С++.
Программа пока сделана только как один файл с ассемблерной вставкой.
Помогите её разбить на 2 файла.
Вот код:
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include<iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL,".1251");
    char*stroka=new char[255];
    cout<<"Введите строку длиной не более 255 символов"<<endl;
    cin.getline(stroka,255);
    short int N=strlen(stroka);
    char*new_str=new char[N++];
    _asm
    {
        mov esi,stroka ; исходная строка
        mov edi,new_str ; новая строка
        xor edx,edx ; edx - номер элемента новой строки, с которой работает программа
begin:
        xor eax,eax ;ah-  начало слова,al- конец
        xor ebx,ebx ; bh- начало минимального слова ; bl - его длина
        xor ecx,ecx ;ecx- номер элемента, с которым в данный момент работает программа
        mov bl,-1
        mov al,-1
min_word :
        cmp cx,N
        je end
        cmp [esi][ecx],' '
        je word_end
        cmp [esi][ecx],'\0'
        je word_end
        inc cx
        
        jmp min_word
word_end:
        
        mov ah,al
        inc ah
        mov al,cl
        inc cx
        cmp ah,al
        je min_word
        sub al,ah
        cmp al,0
        jng min_word
        cmp al,bl
        jg new_min_word
        add al,ah
        jmp min_word
new_min_word:
        
        mov bl,al
        add al,ah
        mov bh,ah
        jmp min_word
end:
        cmp bh,bl
        push ebx
        mov bl,bh
        mov bh,0
        mov ecx,ebx
        pop ebx
delete_word:
 
        cmp bl,-1
        je full_end
        cmp bl,0
        je exit_point
        mov ax,[esi][ecx]
        mov [edi][edx],ax
        inc edx
        mov [esi][ecx],' '
        inc ecx
        dec bl
        jmp delete_word
exit_point:
        
        mov[edi][edx],' '
        inc edx
        jmp begin
full_end:
        mov[edi][edx],'\0'
    }
    cout<<"Искомая строка"<<endl;
    cout<<endl<<new_str<<endl;
    return 0;
}
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru