Главная » Просмотр файлов » assembler. Учебник для вузов_Юров В.И_2003 -637с

assembler. Учебник для вузов_Юров В.И_2003 -637с (862834), страница 56

Файл №862834 assembler. Учебник для вузов_Юров В.И_2003 -637с (Юров В.И - Assembler. Учебник для вузов. 2003) 56 страницаassembler. Учебник для вузов_Юров В.И_2003 -637с (862834) страница 562021-12-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 56)

Речь идет о так называемых цепочечных командах, которые иногда называюткомандами обработки строк символов. Однако эти названия не идентичны. Подстрокой символов здесь понимается последовательность байтов, а цепочка — этоболее общее название для случаев, когда размер элемента последовательности превышает байт и составляет слово или двойное слово. Таким образом, цепочечныекоманды позволяют проводить действия над блоками памяти, представляющимисобой последовательности элементов следующего размера:8 битов, то есть байт;16 битов, то есть слово;' 32 бита, то есть двойное слово.Содержимое этих блоков для процессора не имеет никакого значения.

Это могут быть символы, числа и все что угодно. Главное, чтобы размеры элементов соответствовали одному из перечисленных ранее вариантов и эти элементы находились в соседних ячейках памяти.Всего в системе команд процессора поддерживаются семь операций-примитивов обработки цепочек. Каждая из них реализуется в процессоре тремя командами,250Глава 12. Цепочечные командыв свою очередь, каждая из этих команд работает с соответствующим размером элемента — байтом, словом или двойным словом.

Особенность всех цепочечных команд в том, что они, кроме обработки текущего элемента цепочки, корректируютсодержимое определенных регистров с тем, чтобы автоматически продвинуться кследующему элементу цепочки.Перечислим операции-примитивы обработки цепочек и реализующие их команды ассемблера.« Пересылка цепочки:D MOVS адрес_приемника,адрес_источника;П MOVSB;DMOVSW;D MOVSD.ж Сравнение цепочек:П CMPS адрес_приемника,адрес_источника;О CMPSB;D CMPSW;а CMPSD.ж Сканирование цепочки:D SCAS адрес_приемника;D SCASB;DSCASW;D SCASD.ж Загрузка элемента из цепочки:ПLODS адрес_источника;D LODSB;ПLODSW;П LODSD.ж Сохранение элемента в цепочке:П STOS адрес_приемника;П STOSB;П STOSW;П STOSD.« Получение элементов цепочки из порта ввода-вывода:П INS адрес_приемника,номер_порта;П INSB;П INSW;П INSD.М Вывод элементов цепочки в порт ввода-вывода:П OUTS номер_порта,адрес_источника;251П OUTBS;D OUTWS;П OUTDS.Логически к этим командам нужно отнести и так называемые префиксы повторения.

Вспомните формат машинной команды и его первые необязательные байтыпрефиксов. Один из возможных типов префиксов — это префиксы повторения.Они предназначены для использования цепочечными командами. Префиксы повторения имеют свои мнемонические обозначения:' REP;- REPE, или REPZ;REPNE, или REPNZ.Эти префиксы повторения указываются перед нужной цепочечной командойв поле метки. Цепочечная команда без префикса выполняется один раз.

Размещение префикса перед цепочечной командой заставляет ее выполняться в цикле. Различия приведенных префиксов — в основании, по которому принимается решениео циклическом выполнении цепочечной команды: по состоянию регистра ЕСХ/СХили по флагу нуля ZF.^ Префикс повторения REP (REPeat) используется с командами, реализующимиоперации-примитивы пересылки и сохранения элементов цепочек, — соответственно, MOVS и STOS. Префикс REP заставляет данные команды выполняться,пока содержимое в ЕСХ/СХ не станет равным 0. При этом цепочечная команда,перед которой стоит префикс, автоматически уменьшает содержимое ЕСХ/СХ наединицу.

Та же команда, но без префикса, этого не делает.Ш Префиксы повторения REPE (REPeat while Equal) и REPZ (REPeat while Zero)являются абсолютными синонимами. Они заставляют цепочечную командувыполняться до тех пор, пока содержимое ЕСХ/сх не равно 0 или флаг ZF равен 1.Как только одно из этих условий нарушается, управление передается следующей команде программы. Благодаря возможности анализа флага ZF наиболееэффективно эти префиксы можно использовать с командами CMPS и SCAS дляпоиска различающихся элементов цепочек.« Префиксы повторения REPNE (REPeat while Not Equal) и REPNZ (REPeat whileNot Zero) также являются абсолютными синонимами. Их действие на цепочечную команду несколько отличается от действий префиксов REPE/REPZ.

Префиксы REPNE/REPNZ заставляют цепочечную команду циклически выполняться дотех пор, пока содержимое ЕСХ/СХ не равно нулю или флаг ZF равен нулю. Принарушении одного из этих условий работа команды прекращается. Данные префиксы также можно использовать с командами CMPS и SCAS, но для поиска совпадающих элементов цепочек.Следующий важный момент, связанный с цепочечными командами, заключается в особенностях формирования физического адреса операндов адрес_источника и адрес_приемника. Цепочка-источник, адресуемая операндом адрес_источника,может находиться в текущем сегменте данных, определяемом регистром DS.

Цепочка-приемник, адресуемая операндом адрес_приемника, должна быть в дополнительном сегменте данных, адресуемом сегментным регистром ES. Важно отметить,252Глава 12. Цепочечные командычто допускается замена (с помощью префикса замены сегмента) только регистраDS, регистр ES подменять нельзя. Вторые части адресов (смещения цепочек) такженаходятся в строго определенных местах. Для цепочки-источника это регистр ESI/SI(Source Index register — индексный регистр источника). Для цепочки-получателяэто регистр EDI/DI (Destination Index register — индексный регистр приемника).Таким образом, полные физические адреса для операндов цепочечных команд следующие:адрес_источника — пара ds:esi/si;• адрес_приемника — пара es:edi/di.Кстати, вспомните команды LDS и LES, которые мы рассматривали в главе 7. Этикоманды позволяют получить полный указатель (сегмент плюс смещение) на ячейку памяти.

Применение их в данном случае очень удобно в силу жесткой регламентации использования регистров для адресации операндов источника и приемника в цепочечных командах.Вы, наверное, обратили внимание на то, что все семь групп команд, реализующих цепочечные операции-примитивы, имеют похожий по структуре набор команд. В каждом из этих наборов присутствуют одна команда с явным указаниемоперандов и три команды, не имеющие операндов. На самом деле набор командпроцессора имеет соответствующие машинные команды только для цепочечныхкоманд ассемблера без операндов. Команды с операндами транслятор ассемблеразадействует только для определения типов операндов. После того как выяснен типэлементов цепочек по их описанию в памяти, генерируется одна из трех машинных команд для каждой из цепочечных операций.

По этой причине все регистры,содержащие адреса цепочек, должны быть инициализированы заранее, в том числе и для команд, допускающих явное указание операндов. В силу того, что цепочки адресуются однозначно, нет особого смысла применять команды с операндами.Главное, что вы должны запомнить, — правильная загрузка регистров указателями обязательно требуется до выдачи любой цепочечной команды. Также на практике могут встретиться случаи, когда транслятор потребует явно переопределитьсегмент ES: для соответствующего операнда в команде с явным указанием операндов.Последний важный момент, касающийся всех цепочечных команд, — это направление обработки цепочки. Есть две возможности:от начала цепочки к ее концу, то есть в направлении возрастания адресов;от конца цепочки к началу, то есть в направлении убывания адресов.Как мы увидим позже, цепочечные команды сами выполняют модификациюрегистров, адресующих операнды, обеспечивая тем самым автоматическое продвижение по цепочке. Количество байтов, на которые эта модификация осуществляется, определяется кодом команды.

А вот знак этой модификации определяетсязначением флага направления OF (Direction Flag) в регистре EFLAGS/FLAGS:т если DF = 0, то значения индексных регистров ESI/SI и EDI/DI будут автоматически увеличиваться (операция инкремента) цепочечными командами, то естьобработка будет осуществляться в направлении возрастания адресов;Пересылка цепочек253в если DF = 1, то значения индексных регистров ESI/SI и EDI/DI будут автоматически уменьшаться (операция декремента) цепочечными.командами, то естьобработка будет идти в направлении убывания адресов.Состоянием флага DF можно управлять с помощью двух команд, не имеющихоперандов:II CLD (Clear Direction Flag) — очистить флаг направления (команда сбрасываетфлаг направления DF в 0);ж STD (Set Direction Flag) — установить флаг направления (команда устанавливает флаг направления DF в 1).Это вся информация, касающаяся общих свойств цепочечных команд.

Характеристики

Тип файла
PDF-файл
Размер
14,34 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее