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

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

Войти
Регистрация
Восстановить пароль
 
axicose
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 25
#1

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

11.05.2014, 04:20. Просмотров 322. Ответов 7
Метки нет (Все метки)

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

Добавление неодинаковых строк в массив строк - C++
Здравствуйте! Возникла такая проблема, не могу понять как реализовать добавление в массив строк нодинаковых значений. Вот моя проба, знаю,...

копирование строк - C++
ребят, не подкажете как скопировать строку из искомой, начиная с символа а и заканчивая символом б? #include "stdafx.h" #include...

Копирование строк - C++
И опять столкнулся с проблемой. Описываю функцию, которая копирует k символов из строки str в строку s. Вот мой код: void...

Копирование строк - C++
У Страуструпа приведен такой пример для копирования одной строки в другую: void cpy (char* p, const char* q) { while...

копирование строк - C++
Скопировать из файла F1 в файл F2 все строки, кроме той строки, в которой больше всего гласных букв. Ну или просто скопировать строку...

Копирование строк - C++
Нужно сравнить две строки не учитывая пробелы. Ошибка где-то в копировании a1 в с1 #define _CRT_SECURE_NO_WARNINGS #include...

Копирование строк - 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
Сообщений: 167
11.05.2014, 06:38     Копирование и добавление строк на С++ через процедуру ассемблера #3
У меня есть вопрос, а что это как-то ускоряет копирование строки? подобные функции по моему итак написаны с учетом, что в регистр можно положить не один чар.
newbie666
Заблокирован
11.05.2014, 09:04     Копирование и добавление строк на С++ через процедуру ассемблера #4
давай сначала определимся, ты под x86 код лепишь?
Archi0
28 / 14 / 4
Регистрация: 18.07.2013
Сообщений: 167
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
5240 / 4560 / 1532
Регистрация: 14.04.2014
Сообщений: 18,125
11.05.2014, 15:09     Копирование и добавление строк на С++ через процедуру ассемблера #7
21 строка должна быть до инкрементов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2014, 19:41     Копирование и добавление строк на С++ через процедуру ассемблера
Еще ссылки по теме:

Копирование строк - C++
Добрый вечер. Столкнулся с Проблемой: надо скопировать содержимое "buff" в "hashes.pointname" . Попробовал strcpy - компилируется без...

Копирование Строк - C++
В общем, я продолжаю разборки с С(++) и у меня снова вопрос, ответ на который ув. тов. Google не дал. Гад! Задача: даны три строки,...

копирование строк - C++
Как на языке Си скопировать из строки s1 в строку s2 n символов с k-ой позиции?

Добавление строк в масив строк - C++
Такой вот вопрос как в С++ сделать масив строк(строки статичной длинны), но чтобы можна было добавить ещё строки?

Копирование определенных строк - C++
Всем привет. Задача скопировать строки из txt файла начиная с 16-ой строки в новый txt файл. Есть код но он копирует весь файл целиком....


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

Или воспользуйтесь поиском по форуму:
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     Копирование и добавление строк на С++ через процедуру ассемблера
Ответ Создать тему
Опции темы

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