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

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

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

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

Код операции может занимать от одного до трех байт. Длянекоторых машинных команд часть битов кода операции может находитьсяв байте mod r/m.Многим командам соответствует несколько кодов операций, каждый из которых определяет нюансы выполнения операции. Отметим, что поле кода операциине имеет однозначной структуры (см. рис. 3.1). В зависимости от конкретных команд, не обязательно разных с точки зрения языка ассемблера, оно может иметьв своем составе от одного до трех элементов, назначение которых описано в табл. 3.2.Один из этих трех элементов является непосредственно кодом операции или еечастью, остальные уточняют детали операции. Такое строение поля кода операции усложняет, в частности, процесс дизассемблирования.

Для определения размера и границ очередной команды необходимо полностью проанализировать ееполе кода операции.64Глава 3. Система команд процессора IA32Таблица 3.2. Назначение дополнительных битов поля кода операцииПолеКоличествоНазначениеd1Определяет направление передачи данных: 0 — передачаданных из регистра reg в память (или регистр), адресуемуюполем т/т; 1 — передача данных из памяти (или регистра),адресуемой нолем r/m, в регистр reg. При наличии байта sibадрес операнда в памяти формируется с учетом содержимогоэтого байтаs1Задает необходимость расширения 8-разрядногонепосредственного операнда до 16 или 32 бита.

Старшие битыпри этом заполняются значением старшего (знакового) битаисходного 8-разрядного операндаW1Определяет размер данных, которыми оперирует команда: байт,слово, двойное слово: 0 — 8 битов; 1 — 16 битов для 16-разрядного размера операндов или 32 бита для 32-разрядного размераоперандовreg3Определяет регистр, используемый в команде. Значение полязависит от ноля w, в том числе если поле w отсутствует(см. следующий подраздел)Последующие поля машинной команды определяют характеристики и местоположение операндов, участвующих в операции, и особенности их использования(см.

далее).Байт режима адресации mod r/mБайт режима адресации mod r/m, иногда называемый постбайтом, несет информацию об операндах и режиме адресации. Большинство команд процессора Intel —двухоперандные. Операнды могут находиться в памяти, а также в одном или двухрегистрах. Архитектура IA-32 не допускает, чтобы оба операнда команды находились в памяти. Если операнд находится в памяти, то байт mod r/m определяет компоненты (смещение, базовый и индексный регистры), используемые для вычисления его эффективного адреса (см. главу 2). Байт mod r/m состоит из трех полей(см.

рис. 3.1).!' Поле mod (два бита) определяет способ адресации и количество байтов, занимаемых в команде адресом операнда (поле смещения в команде). Поле mod используется совместно с полем r/m, которое определяет способ модификации адресаоперанда полем смещения в команде. Поле mod в комбинации с полем r/m образует 32 возможных значения, обозначающих один из восьми регистров и 24 режима адресации. К примеру, если mod = 00, то поле смещения в команде отсутствует и адрес операнда определяется содержимым базового и/или индексногорегистра.

Какие именно регистры потребуются для вычисления эффективногоадреса, определяется значением этого байта. Если mod = 01, то поле смещенияв команде присутствует, занимает один байт и модифицируется содержимымбазового и/или индексного регистра. Если mod = 10, то поле смещения в команде присутствует, занимает два или четыре байта (в зависимости от значения,действующего по умолчанию или определяемого префиксом размера адреса)Формат машинных команд IA-3265и модифицируется содержимым базового и/или индексного регистра. Еслиmod = 11, то операндов в памяти нет — они находятся в регистрах. Это же значение байта mod используется в случае, когда команда работает с непосредственным операндом.* Поле reg (3 бита) определяет либо регистр (табл.

3.3 и 3.4), находящийся в команде на месте второго операнда, либо возможное расширение кода операции(давая в совокупности размер поля КОП в 11 битов).яПоле г/т используется совместно с полем mod и определяет либо регистр, находящийся в команде на месте первого операнда (если mod = 11), либо базовыеи индексные регистры, применяемые для вычисления эффективного адреса (совместно с полем смещения в команде).Таблица 3.3. Значения кодов в поле reg (поле w присутствует в команде)w=0ALw=1000001CLCX/ECX010DLDX/EDXOilBLBX/EBX100AHSP/ESP101CHBP/EBPno111DHSI/ESIBHDI/EDIПоле regAX/EAXТаблица З.4. Значения кодов в поле reg (поле w отсутствует)Поле reg1 6-разрядные операции32-разрядные операции000АХЕАХ001схЕСХ010DXEDXонВХЕВХ100SPESP101ВРЕВРно111SIESIDIEDI.В таблицах нет содержимого поля reg для 16-разрядных регистров в 32-разрядных операциях, так как в архитектуре Intel отдельно использовать старшую половину 32-разрядного регистра невозможно.В архитектуре Intel один из операндов обязательно находится в регистре, и онможет быть первым или вторым.

Расположение первого и второго операндов в формате команды фиксировано. Но, например, команда MOV может выполнять пересылку как из регистра в память, так и из памяти в регистр. В машинном представлении3 Зак. 25666Глава 3. Система команд процессора IA32это одна и та же команда. В ее поле reg будет содержаться код регистра (см. табл. 3.3и 3.4), а в поле r/m — код режима адресации (см. далее). Эти две команды будутразличаться только одним битом d, который определяет направление передачи.Если в команде участвуют два регистра, то в этом случае вступает в силу правило:поле reg определяет второй операнд, а поле г/т — первый.

Если команда mov работает с ячейкой памяти, то в исходном тексте программы могут быть следующиеварианты записи этой команды:movabll,ax-.пересылка содержимого ах в ячейку памяти abllилиmov ax,abll;пересылка содержимого ячейки памяти abll в ахВ машинном представлении эти две команды будут выглядеть одинаково, заисключением бита d:' для команды MOV abll,ax бит d = 0;-.. для команды MOV ax,abll бит d = 1.Наиболее сложными для декодирования являются команды с операндом в памяти. Фирма Intel сопровождает описание системы команд специальными таблицами, облегчающими интерпретацию содержимого байта mod r/m (табл. 3.5 и 3.6).С их помощью можно довольно легко восстановить компоненты, из которых формировался адрес операнда, и, в конечном итоге, восстановить соответствующуюкоманду ассемблера для данной машинной команды.Таблица 3.5.

Значения байта mod r/m (16-разрядная адресация)г8ALCLDLBLAHCHDHBHг!6AXCXDXBXSPBPSIDIг32EAXECXEDXEBXESPEBPESIEDI/цифра (код операции)01234567reg000001010on100101110111Эффективный адресmodr/mШестнадцатеричные значения mod r/m[BX+SI]000000008101820283038[BX+DI]000010109111921293139[BP+SI]0001002Oa12la222a32За[BP+DI]00Oil03Ob13Ib232b333bOc[SI]001000414Ic242c343c[DI]0010105Od15Id252d353dсмещ 1600ПО06Oe16le262e363e[ВХ]0011107Of17If272f373f[ВХ+81]+смещ_8010004048505860687078[ВХ+О1]+смещ_8010014149515961697179[ВР+81]+смещ_801010424a525a626a727a[ВР+О1]+смещ_801on434b535b636b737b[81]+смещ_801100444c545c646c747cФормат машинных команд IA-3267Эффективный адресmodr/mШестнадцатеричные значения mod г/т[О1]+смещ_801101454d555d656d757d[ВР]+смещ_801110464е565e666e767e[ВХ]+смещ_801111474f575f676f777f[ВХ+81]+смещ_161000080889098aOa8bOb8[ВХ+О1]+смещ_161000181899199ala9blb9[ВР+81]+смещ_1610010828а929aa2aab2ba[ВР+О1]+смещ_1610011838Ь939ba3abb3bb[81]+смещ_1610100848с949ca4acb4be[О1]+смещ_16858d959da5adb5bd10101[ВР]+смещ_1610110868е969ea6aeb6be[ВХ]+смещ_1610111878f979fa7af77bfEAX/AX/AL11000 .

сОс8dOd8eOe8ГОf8ECX/CX/CL11001clс9dld9ele9Пf9EDX/DX/DL11010с2саd2Dae2eaf2faEBX/BX/BLИ011сЗcbd3Dbe3ebGfbESP/SP/AH11100с4ееd4DCe4ecf4fcЕВР/ВР/СН11101с5cdd5Dde5edfSfdES1/SI/DH11сбсеd6Dee6ееf6feEDI/DI/BH11по111с7cfd7Dfe7eff7ffТаблица З.6. Значения байта mod r/m (32-разрядная адресация)ЕСХEDXЕВХESPЕВРESIEDI01234567000001010011100101ПО111r32ЕАХ/цифра (код операции)regЭффективный адресmodr/mШестнадцатеричные значения mod r/m[ЕАХ]00ооо0008101820283038[ЕСХ]000010109111921293139[EDX]0001002Оа121а222а32За[ЕВХ]00on03Ob131Ь232Ь33ЗЬ[sib]0010004Ос141с242с34ЗсСмещ 320010105Od15Id252d353d[ESI]00Ое161е262е36Зе[EDI]по111060007Of17If272f373f[ЕАХ]+смещ_80100040485058606870787179[ЕСХ]+смещ_801001414951596169[ЕОХ]+смещ_801010424а525а626а7а72продолжение68Глава 3. Система команд процессора IA32Таблица 3.6 (продолжение)Эффективный адресmodr/mШестнадцатеричные значения mod r/m[ЕВХ]+смещ_801011434Ь535b636b737b[sibj+смещ 801100444с545c646c747c[ЕВР]+смещ_801101454d555d656d757d[Е81]+смещ_801по464е565e666e767e[ЕО1]+смещ_801111474f575f676f777f[ЕАХ]+смещ_321000080889098aOa8bOb8[ЕСХ]+смещ_321000181899199ala9blb9.[ЕОХ]+смещ_3210010828а929aa2aab2ba[ЕВХ]+смещ_3210011838Ь939ba3abЬЗbb[SIB]10100848с949ca4acb4be[ЕВР]+смещ_3210101858d959da5adb5bd[Е81]+смещ_3210868е969ea6aeb6be[ЕО1]+смещ_3210по111878f979fa7af77bfEAX/AX/AL11000сОС8dOd8eOe8fi)reECX/CX/CL11001clС9dld9ele9flf9EDX/DX/DL11010с2саd2Dae2eaufaEBX/BX/BL11011сЗcbd3Dbe3ebОftESP/SP/AH11100с4ееd4DCe4ecf4fcЕВР/ВР/СН11101с5cdd5Dde5edf5fdESI/SI/DHИ110сбсеd6Dee6ееf6feEDI/DI/BH11111с7cfd7Dfe7efПffРассмотрим пример использования данных таблиц при значении байта mod r/mравном 87h.

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

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

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

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