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

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

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

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

Приведенный на рис. 3.1 форматмашинной команды является наиболее полным.Как на уровне формата машинной команды соответствуют между собой машинные команды и команды ассемблера? Для примера рассмотрим типичную команду языка ассемблера:ШОУ e b x , eaxКоманда MOV производит копирование содержимого регистра ЕАХ в регистр ЕВХ.Соответствующая машинная команда будет выглядеть так:88 D8Значение 8В — код операции. Еще один пример команды MOV:mov e c x , 128Данная команда инициализирует содержимое регистра ЕСХ десятичным значением 128. Соответствующая машинная команда выглядит так:89 00000080Значение поля с кодом операции — В9. Из примеров видно, что прямого соответствия между структурой команды ассемблера и соответствующей машиннойкомандой нет. Несмотря на то, что команда ассемблера одна и та же (MOV), кодымашинных команд — разные (8В и В9).

Большинство команд ассемблера имеютнесколько возможных вариантов сочетания операндов. Как показано в приведенных примерах, несмотря на одинаковые названия команд ассемблера, для60Глава 3. Система команд процессора IA32ОднобайтовыепрефиксыГповторенияг-||размера адреса<-7 6 5 4 3 2 1 0baseindexКоличество байтов0 или 1\ размера операнда >-* 1,2илиЗ'^ кодбайт' операции modr/mзамены сегмента>-| блокировки шины <-'!iКОП7 6 5 4 3 2 1 0 ! 7КОПw432 1 о;: 7 6 5 432 1 0 ;32 1 0 :i 7 6 5 4 32 1 0 ;reg65КОПКП|s wregКОПIr/tn7 6 5 4 3 2 1 0d wКОП; 7 6 5 4| mod | гер/КОП |wР , I7 6 5 4 3 2 1 0Рис. 3.1.

Формат машинной командыкаждого возможного сочетания операндов имеется своя машинная команда, со своим значением поля кода операции (рис. 3.1). Это говорит о том, что машинная команда всегда однозначна по отношению к производимым ею действиям на уровнеаппаратуры. Несколько упрощая реальность, можно утверждать, что значениев поле кода операции является номером микропрограммы в блоке микропрограммного управления для каждой конкретной команды ассемблера с каждым конкретным вариантом сочетания операндов.Логически любая команда языка ассемблера содержит несколько элементов.Элемент, описывающий, что делать, называется кодом операции (КОП). Значение в поле кода операции некоторым образом определяет в блоке микропрограммного управления подпрограмму, реализующую действия для данной команды.в Элементы, описывающие объекты, с которыми нужно что-то делать, являются операндами.

Операнды в команде могут и не задаваться, а подразумеватьсяпо умолчанию.и Элементы, описывающие, как делать, являются типами операндов и обычнозадаются неявно. Они используются транслятором ассемблера при формировании машинной команды для определения значения поля кода операции.Эти же элементы имеет и машинная команда, но в закодированном виде. Перевод команд ассемблера в соответствующие машинные команды осуществляет специальная программа — ассемблер, которую можно также назвать транслятором(компилятором) ассемблера.Опишем назначения полей машинной команды (рис.

3.1).Формат машинных команд IA-3261Поле префиксовПрефиксы — необязательные однобайтные элементы машинной команды. Назначение префиксов — изменить действия, выполняемые командой. Префиксы могутуказываться программистом явно при написании исходного текста программы,либо их, по определенным соображениям, может вставить ассемблер. Процессорраспознает префиксы по их значениям. Машинная команда может иметь до четырех префиксов одновременно. В памяти префиксы предшествуют команде. Порядок их следования при этом может быть любым.Далее перечислены типы префиксов, которые может использовать прикладнаяпрограмма.* Префикс замены сегмента в явной форме указывает, какой сегментный регистриспользуется в данной команде для адресации стека или данных.

Префикс отменяет выбор сегментного регистра по умолчанию. Префиксы замены сегментаимеют следующие значения:D 2Eh — замена сегмента CS;D 36h — замена сегмента SS;п ЗЕН — замена сегмента DS;П 26h — замена сегмента ES;D 64h — замена сегмента FS;D 65h — замена сегмента GS.« Префикс повторения используется с цепочечными командами (командами обработки строк). Этот префикс «зацикливает» команду для обработки всех элементов цепочки. Система команд поддерживает два типа префиксов: безусловные (REP — OF3h), заставляющие цепочечную команду повторяться некотороеколичество раз, ^условные (REPE/REPZ — OF3h, REPNE/REPNZ — OF2h), которые призацикливании проверяют некоторые флаги, и в результате проверки возможендосрочный выход из цикла.» Префикс блокировки шины инициирует выдачу процессором сигнала LOCKtf (значение OFOh) для блокировки системной шины.

Используется в многопроцессорных конфигурациях для обеспечения монопольного владения системнойшиной. Сигнал LOCKfl может формироваться лишь с определенной номенклатурой команд процессора, работающих в цикле «чтение-модификация-запись».ii Префикс размера адреса (значение 67h) уточняет разрядность адреса: 16 или32 бита. Каждой команде, в которой используется адресный операнд, ставитсяв соответствие разрядность адреса этого операнда. Если разрядность адреса дляданной команды составляет 16 битов, это означает, что команда содержит 16-разрядное смещение и оно соответствует 16-разрядному смещению адресного операнда относительно начала некоторого сегмента (см. рис.

3.1). В контексте материала главы 2 (см. рис. 2.7 и 2.8) это смещение называется эффективнымадресом. Если разрядность адреса составляет 32 бита, это означает, что командасодержит 32-разрядное смещение, оно соответствует 32-разрядному смещениюадресного операнда относительно начала сегмента и по его значению формиру-62Глава 3. Система команд процессора IA32ется 32-разрядное смещение в сегменте (см. рис.

3.1). С помощью префикса разрядности адреса можно изменить действующее по умолчанию значение разрядности адреса. Это изменение будет касаться только той команды, которой предшествует префикс.• Префикс размера операнда (значение 66h) аналогичен префиксу размера адреса, но указывает на разрядность операндов (32 или 16 битов), с которыми работает команда.По каким правилам устанавливаются по умолчанию значения атрибутов разрядности адреса и операндов? Если команда имеет операнд в памяти, то его адреспредставляет собой значение смещения относительно начала сегмента данных (еслине используется префикс переопределения сегмента) и содержится в поле смещения машинной команды.

Размер этого поля зависит от текущего режима адресации (атрибуты use!6 или use32 в директивах сегментации). При 16-разряднойадресации размер поля смещения в машинной команде составляет 16 битов. При32-разрядной адресации размер поля смещения в машинной команде составляет32 бита.

Явное задание префикса размера адреса позволяет указать процессору значение, отличающееся от действующего по умолчанию. Например, если действующий размер адреса равен 16 битам, то использование перед какой-либо командойпрефикса 67h определит для нее (и только для нее!) размер адреса в 32 бита. И наоборот, если действующий размер адреса равен 32 бита, то указание перед командой префикса 67h определит для нее (и только для нее!) размер адреса в 16 битов.Физически это будет отражаться на размере поля смещения в данной машиннойкоманде.Префикс размера операнда ббп позволяет сменить действующий для даннойкоманды атрибут размера операнда. Команда, которая по умолчанию работает сословом (16 битов) или с двойным словом (32 бита), имеет атрибут размера операнда, равный 16 и 32 бита соответственно.

Применение префикса размера операндапозволяет сменить действующий по умолчанию атрибут.При работе процессора 18086 в реальном и виртуальном режимах атрибуты размера адреса и операнда по умолчанию равны 16 битов. В защищенном режиме значения этих атрибутов зависят от значения бита D дескриптора сегмента. Если D = 0, тоатрибуты размера адреса и операнда равны 16 битов, если D = 1, то эти атрибуты равны 32 бита. Изменить действующие по умолчанию атрибуты адреса и размера операндов можно применением атрибутов use!6 или use32 в директивах сегментации.В реальном режиме с помощью префикса разрядности адреса можно задействовать 32-разрядную адресацию, но при этом необходимо помнить об ограниченности размера сегмента величиной 64 Кбайт. Аналогично префиксу разрядности адреса можно использовать префикс разрядности операнда в реальном режиме дляработы с 32-разрядными операндами (к примеру, в арифметических командах).В команде префиксы размера адреса и операнда могут указываться одновременно.

Каким образом комбинация префиксов (указанных явно и установленныхпо умолчанию) влияет на атрибуты размера операнда и адреса машинной команды, показано в табл. 3.1. В ней отражено и то, как влияет на эти атрибуты состояние бита D дескриптора сегмента в защищенном режиме. Строки таблицы, соот-Формат машинных команд IA-3263ветствующие нулевому значению бита D, используются в реальном и виртуальномрежимах работы процессора 18086.Необходимо обратить внимание на то, что команды работы со стеком такжеимеют аналогичные атрибуты размера и адреса операнда.

Атрибут размера адресавлияет на выбор регистра — указателя стека: при размере адреса 16 битов используется регистр SP, при размере адреса 32 бита используется регистр ESP. Аналогичновлияет на работу команд со стеком префикс размера операнда: при использованиипрефикса размера операнда 16 битов операнд в стеке трактуется как 16-разрядный, при использовании префикса размера операнда 32 бита операнд в стеке трактуется как 32-разрядный.Таблица 3.1. Значения атрибутов размеров операнда и адресаБитО66h00-00+1111-+++67h+Размер операндаРазмер адреса16161632+32323216323216161632++3216В качестве примера префикса, который при формировании машинной команды вставляет сам ассемблер, можно привести префикс со значением OFFh. Он называется префиксом смены алфавита и извещает о том, что поле кода операциив данной команде двухбайтовое.Код операцииКод операции — обязательный элемент, описывающий операцию, выполняемую командой.

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

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

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

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