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

Копирование и добавление строк на С++ через процедуру ассемблера - C++

Восстановить пароль Регистрация
 
axicose
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 25
11.05.2014, 04:20     Копирование и добавление строк на С++ через процедуру ассемблера #1
здравствуйте! я рылся много в инете, но не нашел именно функций копирования и добавления строк через процедуру ассемблера на С++
DOS, не могу понять как переделать под плюсы, чтобы работало
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2014, 04:20     Копирование и добавление строк на С++ через процедуру ассемблера
Посмотрите здесь:

Копирование Строк C++
C++ Копирование строк
C++ копирование строк
C++ копирование строк
Используя функцию копирования строк, организуйте конкатенацію и копирование строк в четвертый массив, содержащий полные имена C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
11.05.2014, 05:24     Копирование и добавление строк на С++ через процедуру ассемблера #2
Цитата Сообщение от axicose Посмотреть сообщение
процедуру ассемблера на С++
DOS
причём туту DOS? :rofl:
Assembler является специфической штукой под конкретный процессор... Под x86/ x64 популярен макро ассемблер - он же MASM. По поводу копирования, ну ты определись с длинной строки и с её форматом.... Потом хреначь указатель нового динамический созданного 4-х байтового массива в EAX, потом оттуда MOV куда угодно.... Не ну на самом деле, что может быть не понятно.... Конкретный вопрос озвучь
Archi0
28 / 14 / 4
Регистрация: 18.07.2013
Сообщений: 164
11.05.2014, 06:38     Копирование и добавление строк на С++ через процедуру ассемблера #3
У меня есть вопрос, а что это как-то ускоряет копирование строки? подобные функции по моему итак написаны с учетом, что в регистр можно положить не один чар.
newbie666
Заблокирован
11.05.2014, 09:04     Копирование и добавление строк на С++ через процедуру ассемблера #4
давай сначала определимся, ты под x86 код лепишь?
Archi0
28 / 14 / 4
Регистрация: 18.07.2013
Сообщений: 164
11.05.2014, 10:07     Копирование и добавление строк на С++ через процедуру ассемблера #5
x86 обычно. Если в 64 bit по другому расскажи. По моему предположению при копировании строки алгоритм как в memcpy, который опять по моему предположению идет копирование кусками размером в системный платформа зависимый int. Ну потом отдельно не кратный размеру int хвост байт копируется.
axicose
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 25
11.05.2014, 14:06  [ТС]     Копирование и добавление строк на С++ через процедуру ассемблера #6
задание в лабе такое.. -_-
сделать подобие функций strlen, strcpy, strcmp и strcat только на ассемблере

ну вот strlen и strcpy я уже сделал

Добавлено через 10 минут
тобишь я делаю обычные функции на плюсах, а внутри ассемблеровские вставки

Добавлено через 27 минут
вот пример сравнения строк, не могу понять, почему она не работает..
вернее работает, но не так, как хотелось бы. по идее если строки равны, то вернется 1, если нет, то 0
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
int  strcmp_(const char*  str1, const char* str2)
{
    int  res = 1;
    __asm
    {
        push ebx
        push ecx
        push edx
        mov eax, 1
        mov ebx, str1
        mov ecx, str2 
        again:
            mov dh, [ebx]
            mov dl, [ecx]
            cmp dh, 0
            je next
            cmp dl, 0
            je next
            inc ebx
            inc ecx
            cmp dh, dl
        je again
        fl:
        mov eax, 0
        jmp last
        next:
        cmp dh, 0
        jne fl
        cmp dl, 0
        jne fl
        last:
        pop edx
        pop ecx
        pop ebx
 
        mov res, eax
    }
       return  res;
}
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
11.05.2014, 15:09     Копирование и добавление строк на С++ через процедуру ассемблера #7
21 строка должна быть до инкрементов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2014, 19:41     Копирование и добавление строк на С++ через процедуру ассемблера
Еще ссылки по теме:

Копирование строк C++
Копирование строк C++
C++ Добавление неодинаковых строк в массив строк

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

Или воспользуйтесь поиском по форуму:
axicose
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 25
11.05.2014, 19:41  [ТС]     Копирование и добавление строк на С++ через процедуру ассемблера #8
спасибо, но на результат это особо не повлияло..
оно просто выводит мне результат в строке 24, то бишь если я там в eax помещу 1 то и выведется 1 даже если строки не равны между собой..
а что там не так, не могу понять

Добавлено через 4 часа 26 минут
как сделать функцию strcat, я не могу понять.. там внутри используется функция strcpy
Yandex
Объявления
11.05.2014, 19:41     Копирование и добавление строк на С++ через процедуру ассемблера
Ответ Создать тему
Опции темы

Текущее время: 04:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru