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

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

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

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

Для восстановления местонахождения операндов данной машиннойкоманды следует найти это значение в одной из таблиц (какой таблицей воспользоваться, зависит от текущего режима адресации) и по первому столбцу строки,содержащей код 87h, определить местонахождение первого операнда. В нашем случае адрес операнда формируется из содержимого регистра ВХ и 16-разрядного смещения, значение которого следует искать в следующих за байтом mod r/m двух байтах.

Второй столбец той же строки содержит значение поля mod. Третье поле байтаmod r/m можно найти, переместившись вверх по столбцу, содержащему значение 87h,до пересечения со строкой reg или /цифра. При этом будет выбрано значение, идентифицирующее один из регистров или продолжение кода операции. Что именно —определяется либо самим кодом операции, либо значением бита w в сочетаниис текущей разрядностью адреса (см. ранее).При использовании 32-разрядной адресации содержимое байта mod r/m трактуется несколько иначе из-за наличия в формате машинной команды байта sib(см. подраздел «Байт масштаба, индекса и базы»).Формат машинных команд IA-3269Некоторые машинные команды могут работать с сегментными регистрами. Далее приведены соглашения по кодированию сегментных регистров.

В дальнейшемизложении будем различать два набора регистров:Ш sreg86 — сегментные регистры, существовавшие в архитектуре процессоров18086/88 и i80286;И sreg386 — сегментные регистры архитектуры процессоров i80386 и выше.Различие наборов состоит в том, что кодируются они различным количествомбитов: sreg86 — двумя битами (табл.

3.7), a sreg386 — тремя (табл. 3.8).Таблица 3.7. Кодировка сегментных регистров в наборе sreg86Код в поле sreg86Сегментный регистр00ES01CS10SS11DSТаблица 3.8. Кодировка сегментных регистров в наборе sreg386Код в поле sreg386Сегментный регистр000ES001CS010SSOilDS100FS101 GSОдна из целочисленных команд — команда MOV — может оперировать системными регистрами. Кодировка этих регистров приведена в табл. 3.9.Таблица 3.9. Кодировка системных регистров в команде MOV000Регистры управленияCROРегистры отладкиDRO001—DR1010CR2DR2OilCR3DR3100CR4—101——но111—DR6-DR7Код в поле creg70Глава 3.

Система команд процессора IA32Байт масштаба, индекса и базыБайт масштаба, индекса и базы (Scale-Index-Base — sib) используется для расширения возможностей адресации операндов. На наличие байта sib в машинной команде указывает сочетание одного из значений 01 или 10 поля mod и значения поляг/т = 100. Байт sib состоит из трех элементов (табл.

3.10).li В поле масштаба (ss) размещается масштабный множитель для индексногокомпонента index, занимающего следующие три бита байта sib. В поле ss можетсодержаться значение 1, 2, 4 или 8. При вычислении эффективного адреса наэто значение будет умножаться содержимое индексного регистра. Более подробно, с практической точки зрения, эта расширенная возможность индексации рассматривается при обсуждении массивов в главе 13.» Поле index позволяет хранить номер индексного регистра, содержимое которого применяется для вычисления эффективного адреса операнда.и Поле base требуется для хранения номера базового регистра, содержимое которого также применяется для вычисления эффективного адреса операнда. В качестве базового и индексного регистров могут использоваться большинстворегистров общего назначения.Таблица 3.10. Значения байта sib (32-разрядная адресация)г32EAXЕСХEDXЕВХESP*ESIEDIБаза (base)000001010Oil100101110111МасштабированиеиндексногорегистраМасштабныймножитель(ss)Индекс(index)Шестнадцатеричные значения sib[ЕАХ]000000001020304050607[ЕСХ]000010809OAOBОСODOEOF[EDX]000101011121314151617[ЕВХ]00Oil18191AIB1CIDIEIF—001002021222324252627[ЕВР]0010128292A2B2C2D2E2F[ESI]00ПО3031323334353637[EDI]001113839ЗА3B3C3D3E3F[ЕАХ*2]010004041424344454647[ЕСХ*2]0100148494A4B4C4D4E4F[EDX*2]010105051525354555657[ЕВХ*2]01Oil58595A5B5C5D5E5F—011006061626364656667[ЕВР*2]0110168696A6B6C6D6E6F[ESI*2]011107071727374757677[EDI*2]0111178797A7B7C7D7E7F[ЕАХ*4]100008081828384858687Формат машинных команд 1А-32МасштабированиеиндексногорегистраМасштабныймножитель[ЕСХ*4]71Индекс(index)Шестнадцатеричные значения sib1000188898А8В8С8D8Е8F[EDX*4]100109091929394959697[ЕВХ*4]10Oil98999А9В9С9D9Е9F—10100АОА1А2A3А4А5А6А7[ЕВР*4]10101А8А9АААВАСADАЕAF[ES1*4]10ПОВОВ1В2ВЗВ4В5В6В7[EDI*4]10111В8В9ВАВВВСBDBEBF[ЕАХ*8]И000СОС1С2СЗС4С5С6С7[ЕСХ*8]И001С8С9САСВссCDСЕCF[EDX*8]И010DOD1D2D3D4D5D6D7[ЕВХ*8]и11и1111onD8D9DADBDCDDDEDF100ЕОЕ1Е2ЕЗЕ4Е5Е6Е7101Е8Е9ЕАЕВЕСEDЕЕEFПОFOF1F2F3F4F5F6F7111F8F9FAFBFCFDFEFF—[ЕВР*8][ESI*8][EDI*8](SS)По значению байта sib легко восстановить компоненты машинных команд, содержащие адрес операнда с учетом его масштабирования.Одно значение базового регистра (base) в табл.

3.10 замещено символом звездочки (*). Это означает наличие в команде адреса смещ_32 без базы, если mod равно 00, и [ЕВР] — в противном случае. Такой подход обеспечивает следующие режимы адресации:и смеи!_32[индекс], если mod=00;il смещ_8[еЬр][индекс], если mod=01;II смещ_32[еЬр][индекс], если mod=10.Поля смещения и непосредственного операндаПоле смещения в команде — это 8-, 16- или 32-разрядное целое число со знаком,представляющее собой полностью или частично (с учетом приведенных ранее рассуждений) значение эффективного адреса операнда.Поле непосредственного операнда — необязательное поле, представляющее собой 8-, 16- или 32-разрядный непосредственный операнд.

Наличие этого поля, конечно, отражается на значении байта mod r/m.Столь подробное обсуждение различных полей машинной команды, в том числе с использованием всех приведенных ранее таблиц, имеет целью показать правила формирования операндов машинных команд. При рассмотрении синтаксисаассемблера (глава 5) на основе этого материала будут обсуждаться правила записи операндов команд ассемблера.7?Глава 3.

Система команд процессора IA32Функциональная классификациямашинных командВ начале главы отмечалось, что система команд последнего на сегодняшний деньпроцессора Pentium IV архитектуры IA-32 содержит более 300 машинных команд.Весь набор машинных команд можно разбить на четыре группы (рис. 3.2).Команды ассемблера Pentium IVХММ-расширенияРис. 3.2. Машинные команды процессора Intel (Pentium IV)В пределах каждой из этих больших групп, исходя из функционального назначения отдельных команд, можно провести дальнейшее разбиение на более мелкиеподгруппы. Такой подход позволяет достичь нескольких целей:ж оценить возможности процессора по обработке данных;Ш рассмотреть совокупность команд процессора архитектуры IA-32 как иерархическую и самодостаточную систему;№ осмысленно изучать отдельные машинные команды в контексте остальных.В главах 7-10 и 12 будут рассмотрены команды основного процессора (целочисленные), поэтому здесь приведем их классификацию по функциональномупризнаку (рис.

3.3).Команды ассемблераПересылкиданныхАрифметическиеОбщегоназначенияРаботысо стеком^ДвоичнойарифметикиДесятичнойарифметикиЛогическиеПередачиУ правленияЦепочечные, Манипуляции - БезусловныебитамиСдвигаУсловныеУправленияс остоянием ЦПгРаботыс флагамиРаботы с- системнымирегистрамиПреобразованияданныхРис. 3.3. Функциональная классификация целочисленных машинных командФункциональная классификация команд остальных групп будет приведена в материале соответствующих глав. Информацию о каждой команде процессора архитектуры IA-32 (вплоть до Pentium IV) можно найти в приложении, которое удобно использовать в ходе работы над программными проектами.Стоит обратить внимание на то, что приложение состоит из четырех Частей —это соответствует разбиению команд процессора на функциональные группы(рис.

3.2).Итоги73Итоги- Система машинных команд — важнейшая часть архитектуры компьютера, определяющая возможности его программирования.I- Для работы процессора достаточно программы в двоичных кодах, но такое прямое программирование на практике не используется. Язык ассемблера — символический аналог машинного языка.

Преобразование команд ассемблерав соответствующие машинные команды производит программа-транслятор —ассемблер. Дальнейшая интерпретация машинных команд в конкретные сигналы электронных схем осуществляется с помощью блока микропрограммногоуправления, входящего в состав процессора.• Существует взаимно однозначное соответствие машинных команд и командассемблера.№ Кодирование машинных команд производится в соответствии с одним из возможных форматов. Команды процессоров архитектуры IA.-32 считаются сложными, так как в основу концепции процессоров Intel положен принцип совместимости — программы, разработанные для более ранних моделей процессоров,должны выполняться на всех последующих.II Структура команд процессора позволяет обеспечить большую гибкость приобработке операндов и разнообразие режимов адресации.iii Большинство команд ассемблера имеют несколько возможных вариантов сочетания операндов.

Для каждого возможного сочетания операндов имеется своямашинная команда со своим значением поля кода операции.81 Машинную команду формируют несколько полей, из которых обязательнымявляется только одно — поле кода операции.II Система команд архитектуры 1А-32 является иерархической и самодостаточной. Все команды делятся на четыре группы, в пределах каждой из которыхвыделяется довольно большое количество функциональных подгрупп.Глава 4Системы счисленияПозиционные и непозиционные системы счисленияДвоичная система счисленияШестнадцатеричная система счисленияДесятичная система счисленияПеревод чисел из одной системы счисления в другуюПонимание порядка представления чисел в двоичной, десятичной и шестнадцатеричной системах счисления является одним из необходимых условий успешногопрограммирования на ассемблере.

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

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

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

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

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