Главная » Просмотр файлов » Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005)

Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005) (1186253), страница 75

Файл №1186253 Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005) (Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005)) 75 страницаМаксимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005) (1186253) страница 752020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Элементы такихстрок располагаются в последовательных ячейках памяти, но каждый элемент представлен в «перевернутом» виде.Представление адресов. Адрес — это порядковый номер ячейкипамяти, т. е. неотрицательное целое число, поэтому в общем случаеадреса представляются так же, как и числа без знака. Однако в180X86 есть ряд особенностей в представлении адресов.Дело в том, что в 180X86 термином «адрес» обозначают разныепонятия.

Часто под адресом понимается 16-битовое смещение(offset) — адрес ячейки, отсчитанный от начала сегмента (области)памяти, которому принадлежит эта ячейка. В этом случае под адресотводится слово памяти, причем адрес записывается в «перевернутом» виде (как и числа-слова вообще).В другом случае под «адресом» понимается 20-битовый абсолютный адрес некоторой ячейки памяти. В силу ряда причин в180X86 такой адрес задается не как 20-битовое число, а как пара«сегментхмещение», где «сегмент» (segment) — это первые 16 битовначального адреса сегмента памяти, которому принадлежит ячейка,а «смещение» (offset) — 16-битовый адрес этой ячейки, отсчитанныйот начала данного сегмента памяти (величина 16 х сегмент + смещение дает абсолютный адрес ячейки).Такая пара записывается в виде двойного слова, причем (как идля чисел) в «перевернутом» виде: в первом слове размещается смещение, а во втором — сегмент, причем каждое из этих слов в своюочередь представлено в «перевернутом» виде.

Например, параl 2 3 4 h : 5678h будет записана так:78Смещение561234Сегмент384Глава 4. Персональные компьютерыДирективы определения данных. Для того чтобы в программе наMASM зарезервировать ячейки памяти под константы и переменные, необходимо воспользоваться директивами определения данных — с названиями DE (описывает данные размером в байт), DW(размером в слово) и DD (размером в двойное слово). (Директивы,или команды ассемблеру, — это предложения программы, которыми ее автор сообщает какую-то информацию ассемблеру или проситчто-то сделать дополнительно, помимо перевода символьных команд на машинный язык.)В простейшем случае в директиве DB, DW или DD описываетсяодна константа, которой дается имя для последующих ссылок нанее. По этой директиве ассемблер формирует машинное представление константы (в частности, если надо, «переворачивает» ее) и записывает в очередную ячейку памяти.

Адрес этой ячейки становится значением имени: все вхождения имени в программу ассемблербудет заменять на этот адрес.Имена, указанные в директивах DB, DW и DD, называются именами переменных (в отличие от меток — имен команд).В MASM числа записываются в нормальном (неперевернутом)виде в системах счисления с основанием 10, 16, 8 или 2. Десятичные числа записываются как обычно, за шестнадцатеричным числом ставится буква h (если число начинается с «цифры» А, в, ., F,то вначале обязателен 0), за восьмеричным числом — буква q или о,за двоичным числом — буква Ь.Примеры:AВСDЕDBDBDWDWDD162OA2h-1OFFFFh-1;описать константу-байт 162 и дать ей имя А/такая же константа, но с именем В;константа-слово -1 с именем С/такая же константа-слово, но с именем D;-1 как двойное словоКонстанты-символы описываются в директиве DB двояко: указывается либо код символа (целое от 0 до 255), либо сам символ вкавычках (одинарных или двойных); в последнем случае ассемблерсам заменит символ на его код.

Например, следующие директивыэквивалентны (2А — код звездочки в ASCII):СН DB 02AhСН DB '*'СН DB «*»4.3. Режимы процессора. Система команд процессоров 180x86...385Константы-адреса, как правило, задаются именами. Так, по директивеADR DW СНбудет отведено слово памяти, которому дается имя ADR и в котороезапишется адрес (смещение), соответствующий имени сн. Если такое же имя описать в директиве DD, то ассемблер автоматически добавит к смещению имени его сегмент и запишет смещение в первуюполовину двойного слова, а сегмент — во вторую половину.По любой из директив DB, DW и DD можно описать переменную,т. е.

отвести ячейку, не дав ей начального значения. В этом случае вправой части директивы указывается вопросительный знак:F DW ? ; отвести слово и дать ему имя F, ничего в этослово не записывать .В одной директиве можно описать сразу несколько константи/или переменных одного и того же размера, для чего их надо перечислить через запятую. Они размещаются в соседних ячейках памяти. Пример:G DB 2 0 0 ,-5,10h,'F1Имя, указанное в директиве, считается именующим первую изконстант.Для ссылок на остальные в MASM используются выражениявида <имя> + <целое>; например, для доступа к байту с числом -5надо указать выражение G + 1, для доступа к байту с 10h — выражение G + 2 и т.

д.Если в директиве DB перечислены только символы, например:S DB ' а ' , ' + ' ' b 'тогда эту директиву можно записать короче, заключив все эти символы в одни кавычки:S DB ' а + Ь 'И наконец, если в директиве описывается несколько одинаковых констант (переменных), то можно воспользоваться конструкцией повторенияk DUP(a,b, . . . ,с) ,которая эквивалентна повторенной k раз последовательности а,Ь, ..., с.113 <Архитсктура ЭВМ»386Глава 4. Персональные компьютерыНапример, директивыVI DB 0 , 0 , 0 , 0 , 0V2 DW ? , ? , ? , ? . ? , ? , ? , ? . ? , ' а ' , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2можно записать более коротко таким образом:VI DB 5 D U P ( O )V2 DW 9 D U P ( ? ) ,' a 1 , 4 DUP(1,2)Представление команд. Модификация адресовС т р у к т у р а к о м а н д .

И с п о л н и т е л ь н ы е а д р е с а . Машинные команды 180X86 занимают от 1 до 6 байтов. Код операции(КОП) занимает один или два первых байта команды. В 180X86много различных операций, так что для них не хватает 256 различных КОПов, которые можно представить в одном байте. Поэтомунекоторые операции объединяются в группу и им дается один и тотже КОП, во втором же байте этот КОП уточняется.

Кроме того, вовтором байте указываются типы и способ адресации операндов. Остальные байты команды указывают на операнды.Команды могут иметь от 0 до трех операндов, у большинствакоманд — один или два операнда. Размер операндов — байт илислово (редко — двойное слово). Операнд может быть указан в самойкоманде (это так называемый непосредственный операнд), либо может находиться в одном из регистров 180X86 и тогда в команде указывается этот регистр, либо может находиться в ячейке памяти и тогда в команде тем или иным способом указывается адрес этой ячейки. Некоторые команды требуют, чтобы операнд находился нафиксированном месте (например, в регистре АХ), тогда этот операндявно не указывается в команде.

Результат выполнения команды помещается в регистр или ячейку памяти, из которого (которой), какправило, берется первый операнд. Например, большинство командс двумя операндами реализуют действиеор! := ор! - ор2где opl — регистр или ячейка; а ор2 — непосредственный операнд,регистр или ячейка.Адрес операнда разрешено модифицировать по одному илидвум регистрам. В первом случае в качестве регистра-модификатораразрешено использовать регистр вх, ВР, si или DI (и никакойиной). Во втором случае один из модификаторов обязан быть регистром вх или ВР, а другой — регистром SI или DI; одновременнаямодификация по вх и ВР или si и DI недопустима.4.3. Режимы процессора.

Система команд процессоров 180x86...387Регистры вх и ВР обычно используются для хранения базы (начального адреса) некоторого участка памяти (скажем, массива) ипотому называются базовыми регистрами, а регистры si и DI частосодержат индексы элементов массива и потому называются индексными регистрами.Однако такое распределение ролей необязательно, и, например,в si может находиться база массива, а в вх — индекс элементамассива.В MASM адреса в командах записываются в виде одной из следующих конструкции:А , А [ М ] или A [ M l ] [ M 2 ] ,где А — адрес; м — регистр вх, ВР, si или DI, Ml — регистр вх илиВР, а М2 — регистр si или DI.

Во втором и третьем варианте А может отсутствовать, в этом случае считается, что А = 0.При выполнении команды процессор прежде всего вычисляеттак называемый исполнительный (эффективный) адрес — как суммуадреса, заданного в команде, и текущих значений указанных регистров-модификаторов, причем все эти величины рассматриваются какнеотрицательные и суммирование ведется по модулю 2 16 ( [ г ] означает содержимое регистра г):А : Аисп = АА [ М ] : Аисп = А+[М](mod 2 1 6 )А [ М 1 ] [ М 2 ] : Аисп = А + [ М 1 ] + [ М 2 ](mod 2 1 6 )Полученный таким образом 16-разрядный адрес определяет такназываемое смещение — адрес, отсчитанный от начала некоторогосегмента памяти. Перед обращением к памяти процессор еще добавляет к смещению начальный адрес этого сегмента (он хранится внекотором сегментном регистре), в результате чего получаетсяокончательный 20-разрядный адрес, по которому и происходит фактическое обращение к памяти.Ф о р м а т ы к о м а н д .

В 180X86 форматы машинных команддостаточно разнообразны. Для примера приведем лишь основныеформаты команд с двумя операндами.1. Формат «регистр—регистр» (2 байта):копdw11reglreg27 210765 32 0388Глава 4. Персональные компьютерыКоманды этого формата описывают обычно действие regl : =regl - reg2 или reg2 := reg2 - regl. Поле КОП первого байтауказывает на операцию (-), которую надо выполнить.Бит w определяет размер операндов, а бит d указывает, в какойиз регистров записывается результат:W = 1— словаd = 1regl := regl - reg2= 0— байты= 0reg2 := reg2 - reglВо втором байте два левых бита фиксированы (для данногоформата), а трехбитовые поля regl и reg2 указывают на регистры,участвующие в операции, согласно следующим правилам:regw=lw=0000AXAL001CXCL010DXDLOilBXBL100SPAH101BPCH110SIDH111DIBH2. Формат «регистр—память» (2—4 байта):копwmodregmemадрес ( 0 - 2 байта)Эти команды описывают операции reg := reg - mem илиmem : = mem - reg.

Бит w первого байта определяет размер операндов (см. ранее), а бит d указывает, куда записывается результат: врегистр (d = 1) или в ячейку памяти (d = 0). Трехбитовое поле regвторого байта указывает операнд-регистр (см. выше), двухбитовоеполе mod определяет, сколько байт в команде занимает операнд-адрес (00 — 0 байтов, 01 — 1 байт, 10 — 2 байта), а трехбитовое полеmem указывает способ модификации этого адреса. В следующей таб-4.3.

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

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

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