|
21 / 9 / 6
Регистрация: 10.11.2017
Сообщений: 148
|
||||||
Команды для работы со строками в ассемблере20.12.2024, 10:24. Показов 4940. Ответов 46
Метки нет (Все метки)
Здравствуйте. Нужно решить данную задачу во встроенном ассемблере C++: Найти слова, оканчивающиеся на заданную с клавиатуры букву, и перевернуть.
Пытаюсь сделать уже вторую неделю, выходит так себе. Прикладываю код, который писал сам. Писать на С++ можно только считывание с клавиатуры и вывод на экран, как написано в приложенном коде.
0
|
||||||
| 20.12.2024, 10:24 | |
|
Ответы с готовыми решениями:
46
Заменить в строке каждую точку ‘.’ на многоточие “…” , используя команды работы со строками Найти невозможные или ошибочные команды на Ассемблере для микроконтроллера Intel 8051 Реализовать на ассемблере функцию для работы с числами половинной точности |
|
|
|
| 23.12.2024, 12:43 | |
|
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|||
| 23.12.2024, 12:56 | |||
|
А если никак - то чем лучше в данном случае? опять какие-то фантазии про сферического коня в вакууме. Без ответов для ТС. Добавлено через 47 секунд
1
|
|||
| 23.12.2024, 13:10 | ||
|
Не по теме:
А мой пост прямо не связан с темой. Я отвечал с цитатой на конкретный пост. Так сказать, в рамках данной темы тут одновременно течет дискуссия о целесообразности таких заданий.
0
|
||
|
21 / 9 / 6
Регистрация: 10.11.2017
Сообщений: 148
|
|
| 23.12.2024, 13:31 [ТС] | |
|
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 23.12.2024, 13:55 | ||
|
По ошибкам предполагаю, что для cmp нет возможности во втором операнде указать косвенную адресацию в виде "ссылка на переменную", тем более, если первый операнд -тоже косвенная ссылка. Ну либо не понятно какой должен быть для этого синтаксис. Примеров тоже не нагуглилось. Чтобы объехать проблему - предлагаю сначала переложить в регистр значение переменной cch, а потом с этим регистром сравнить. Заработает ли после этого алгоритм - не знаю, в смысл написанного не вникал.
1
|
||
|
|
|||
| 23.12.2024, 15:48 | |||
|
Добавлено через 5 минут
1
|
|||
|
21 / 9 / 6
Регистрация: 10.11.2017
Сообщений: 148
|
|||||||
| 23.12.2024, 16:55 [ТС] | |||||||
0
|
|||||||
|
|
|
| 23.12.2024, 17:08 | |
|
1
|
|
|
21 / 9 / 6
Регистрация: 10.11.2017
Сообщений: 148
|
|
| 23.12.2024, 17:28 [ТС] | |
|
0
|
|
|
|
|
| 23.12.2024, 17:34 | |
|
Попробуй сравнить через регистр. То есть сначала надо ccd присвоить регистру, а потом уже савнивать регистр с регистром
Добавлено через 4 минуты Сравниваемые значения не могут одновременно находиться в памяти
1
|
|
|
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
|
|
| 23.12.2024, 17:37 | |
|
Женя Брянцев, твоя проблема в том, что ты опубликовал тему в разделе "С++ для начинающих". Ассемблер не имеет никакого отношения ни к С++, ни к начинающим. Ассемблерные вставки еще можно притянуть к этому разделу, но у тебя проблема не в самой вставке, а чисто в ассемблерном коде. Тебе нужно было задать вопрос в разделе https://www.cyberforum.ru/asm-beginners/
0
|
|
|
|
||||
| 23.12.2024, 17:58 | ||||
|
Добавлено через 14 минут Добавлено через 2 минуты Ты загружаешь ecx длиной строки, но нигде его не используешь. Достаточно сравнивать на 0. Поэтому грузи ccd в ecx Добавлено через 3 минуты
1
|
||||
|
21 / 9 / 6
Регистрация: 10.11.2017
Сообщений: 148
|
||||||
| 23.12.2024, 18:05 [ТС] | ||||||
Ошибка C2415 недопустимый тип операнда
0
|
||||||
|
|
|
| 23.12.2024, 18:29 | |
|
1
|
|
|
21 / 9 / 6
Регистрация: 10.11.2017
Сообщений: 148
|
||||||
| 23.12.2024, 18:41 [ТС] | ||||||
|
так же, правильно понял? ошибки ушли, но результат не выводится...
0
|
||||||
|
|
|
| 23.12.2024, 19:15 | |
|
Вообще надо в дебаггере отлаживать. Не суетись, тут нужна постепенность. Главное что мы уже продвинулись. Сегодня времени нет.
1
|
|
| 23.12.2024, 19:20 | |
|
0
|
|
| 23.12.2024, 19:50 | |
|
0
|
|
|
Модератор
|
|
| 23.12.2024, 20:47 | |
|
Женя Брянцев, в VS есть отладчик - откройте окно регистров, выполните программу по шагам и увидите ошибки.
Навскидку вижу, что для реверса есть попытка что-то поместить в строку dest, а если реверс не потребовался - то строка dest останется пустой. И хорошо бы реверс делать "на месте", а не в отдельную строку. Добавлено через 4 минуты При проверке строки используется указатель - регистр edi, но он затирается какими-то значениями при реверсе.
1
|
|
|
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
|
||
| 24.12.2024, 00:14 | ||
|
0
|
||
| 24.12.2024, 00:14 | |
|
Команды в ассемблере Подскажите команды для работы с БД Команды для работы с XML AT команды для работы в интернете Класс для работы со строками Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|