Хостинг портала RFpro.ru: Московский хостер Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64 РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты по данной тематике Номер выпуска: | 1507 | Дата выхода: | 29.03.2012, 11:00 | Администратор рассылки: | Лысков Игорь Витальевич (Старший модератор) | Подписчиков / экспертов: | 100 / 41 | Вопросов / ответов: | 1 / 1 | Консультация # 185671: Доброго времени суток уважаемые эксперты. Прошу решить следующую задачу по программированию. Написать на языке ассемблера программу, реализующую некоторый алгоритм в соответствии с полученным заданием: Дан текст. Определить, сколько в нем групп букв "abc", "bac". По итогам выполнения работы оформляется отчет. ... Консультация # 185671: Доброго времени суток уважаемые эксперты. Прошу решить следующую задачу по программированию. Написать на языке ассемблера программу, реализующую некоторый алгоритм в соответствии с полученным заданием:
Дан текст. Определить, сколько в нем групп букв "abc", "bac".
По итогам выполнения работы оформляется отчет. Отчет о выполнении работы должен содержать: краткие теоретические сведения, необходимые для выполнения работы; описание структур данных, обрабатываемых программой; описание алгоритма выполнения задания в виде псевдокода или блок схемы; описание вводимых данных и результатов работы программы; требования, к техническим и программным средствам, необходимым для выполнения программы. тексты программ на ассемблере, разрабатываемые при выполнении лабораторных работ, должны содержать достаточное количество комментариев.
Дата отправки: 26.03.2012, 10:38 Вопрос задал: Посетитель - 392980 (Посетитель) Всего ответов: 1 Страница онлайн-консультации » Консультирует Зенченко Константин Николаевич (Модератор): Здравствуйте, Посетитель - 392980!
Смотрите приложение:
По условию задания, необходимо проверять группы "abс" и "baс". Совпадает в проверяемых группах только последний символ. На основании этого, в введенной строке ищется символ "с" и проверяется на совпадение два предыдущих "ab" и "ba". Чтобы не усложнять понимание работы самого алгоритма даные вводятся с клавиатуры. Теоритически было бы более правильным иcпользовать строковые команды SCAS и CMPS, но так как в задании ничего не указано о строках и подстроках, использовался более простой алгоритм.
Основной структурой программы является строка используемая функцией 0Аh прерывания 21h: dbMax db MaxString -максимальная длина вводимой строки(используется функцией); dbLen db ? - реальная длина введенной строки(заполняется функцией); dbData db Max String dup(?) - буффер из MaxString байт для хранения введенной строки.
Блок-схема:
 двойной стрелкой указаны переходы совпадающие с условием проверки;
См. рисунок, как пример работы:

Процессор intel x86 или совместимый; Среда - DOS; Модель организации памяти в программе - tiny; Компилятор TASM. Команды компилятора в командной строке:
обратите внимание на ключ /t во второй строке
замечания по программе: -программа работает только со строчныим буквами; -при вводе 97-ми символов начинающихся с "bс..." или 98-ми символов начинающихся с "ас..." - будет ложное срабатывание в соответсвующей группе.
Удачи! Приложение:
Оценить выпуск | Задать вопрос экспертам главная страница | стать участником | получить консультацию техническая поддержка | восстановить логин/пароль Дорогой читатель! Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно! МЫ РАБОТАЕМ ДЛЯ ВАС! |
Комментариев нет:
Отправить комментарий