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

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

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

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

Режимы процессора. Система команд процессоров 180x86...389лице указаны правила вычисления исполнительного адреса в зависимости от значений полей mod и mem (a8 — адрес размером в байт,а!6 — адрес размером в слово):mem\mod000110000[BX]+[SI][BX]+[SI]+a8[BX] + [SI] +a!6001[BX]+[DI][BX] +[DI] +a8[BX]+[DI]+al6010[BP]+[SI][BP]+[SI]+a8[BP]+[SI]+al6Oil[BP]+[DI][BP]+[DI]+a8[BP]+[DI]+al6100[SI][SI]+a8[SI]+al6101[DI][DI]+a8[DI]+al6110a!6[BP] +a8[BP]+al6111[BX][BX]+a8[BX]+al6Замечания.

Если в команде не задан адрес, то он считается нулевым.Если адрес задан в виде байта (а8), то он автоматически расширяется сознаком до слова (а 16). Случай mod = 00 и mem = 110 указывает на отсутствиерегистров-модификаторов, при этом адрес должет иметь размер слова (адресноевыражение [ВР] ассемблер транслирует в mod = 01 и mem = 110 при а8 = 0).Случай mod = 11 соответствует формату «регистр—регистр».3.

Формат «регистр—непосредственный операнд» (3—4 байта):КОПsw11КОП'regнепосред. операнд ( 1 - 2 6 )Команды этого, формата описывают операции reg := reg immed (immed — непосредственный операнд). Бит w указывает наразмер операндов, а поле reg — на регистр-операнд (см. ранее).Поле КОП в первом байте определяет лишь класс операции (например, класс сложения), уточняет же операцию поле КОП из второгобайта.

Непосредственный операнд может занимать 1 или 2 байта взависимости от значения бита w, при этом операнд-слово записывается в команде в «перевернутом» виде. Ради экономии памяти в180X86 предусмотрен случай, когда в операции над словами непосредственный операнд может быть задан байтом (на этот случайуказывает «1» в бите s при w = 1), и тогда перед выполнением операции байт автоматически расширяется (со знаком) до слова.390Глава 4. Персональные компьютеры4. Формат «память—непосредственный операнд» (3—6 байтов):копswmodКОП"memадрес(0 26)непоср. оп(1 26)Команды этого формата описывают операции типа memmem - immed. Смысл всех полей — тот же, что и в предыдущихформатах.Помимо рассмотренных в 180X86 используются и другие форматы команды с двумя операндами; так, предусмотрен специальныйформат для команд, один из операндов которых фиксирован (обычно это регистр АХ).

Имеют свои форматы и команды с другим числом операндов.З а п и с ь к о м а н д в M A S M . Ранее уже было дано краткоеописание форматов ассемблерных команд, здесь же следует его конкретизировать, с учетом дополнительных сведений. Из сказанногоясно, что одна и та же операция в зависимости от типов операндовзаписывается в виде различных машинных команд: например, в180X86 имеется 28 команд пересылки байтов и слов. В то же время вMASM все эти «родственные» команды записываются единообразно: например, все команды пересылки имеют одну и ту же символьную форму записи:MOV opl,op2 (opl:=op2)Анализируя типы операндов, ассемблер сам выбирает подходящую машинную команду.В общем случае команды записываются в MASM следующимобразом:МЕТКА: МНЕМОКОД ОПЕРАНДЫ /КОММЕНТАРИЙМетка с двоеточием, а также точка с запятой и комментариймогут отсутствовать.

Метка играет роль имени команды, ее можноиспользовать в командах перехода на данную команду. Комментарий не влияет на смысл команды, а лишь поясняет ее. Операнды,если есть, перечисляются через запятую. Основные правила записиоперандов следующие.Регистры указываются своими именами, например:MOV AX,SI ;оба операнда — регистры4.3. Режимы процессора. Система команд процессоров 180x86... 391Непосредственные операнды задаются константными выражениями (их значениями являются константы-числа), например:MOV ВН,55 - непосредственный операндMOV DI,SIZE X SIZE X (число байтов, занимаемыхпеременной X) - непосредственный операндАдреса описываются адресными выражениями (например, именами переменных), которые могут быть модифицированы по одному или двум регистрам; например, в следующих командах первыеоперанды задают адреса:MOV Х , А НMOV X [ B X ] [ D I ] , 5MOV [ B X ] , C LПри записи команд в символьной форме необходимо внимательно следить за правильным указанием типа (размера) операндов,чтобы не было ошибок.

Тип обычно определяется по внешнемувиду одного из них, например:MOV АН,5MOV А Х , 5Пересылка байта, так как АН - байтовыйрегистрПересылка слова, так как АХ - 16-битовыйрегистр-операнд (5 может быть байтом исловом, по нему нельзя определить размерпересылаемой величины)MOV [ВХ],300 Пересылка слова, так как число 300не может быть байтомЕсли по внешнему виду можно однозначно определить тип обоих операндов, тогда эти типы должны совпадать, иначе ассемблерзафиксирует ошибку. Примеры:MOV DS,AXОба операнда имеют размер словаMOV СХ,ВНОшибка: регистры СХ и ВН имеют разныеразмерыMOV DL,300Ошибка: DL — байтовый регистр, а число 300не может быть байтомВозможны ситуации, когда по внешнему виду операндов нельзяопределить тип ни одного из них, как, например, в командеMOV [ B X ] , 5392Глава 4.

Персональные компьютерыЗдесь число 5 может быть и байтом, и словом, а адрес из регистра вх может указывать и на байт памяти, и на слово. В подобныхситуациях ассемблер фиксирует ошибку. Чтобы избежать ее, надоуточнить тип одного из операндов с помощью оператора с названием PTR:MOV BYTE PTR [BX],5Пересылка байтаMOV WORD PTR [BX],5Пересылка слова(Операторы — это разновидность выражений языка MASM,аналогичные функциям.)Оператор PTR необходим и в том случае, когда надо изменитьтип, предписанный имени при его описании. Если, например, хописано как имя переменной размером в слово:XDW999и если надо записать в байтовый регистр АН значение только первого байта этого слова, тогда воспользоваться командой видаMOV А Н , Хнельзя, так как ее операнды имеют разный размер.

Эту командуследует записать несколько иначе:MOV А Н , B Y T E PTR XЗдесь конструкция BYTE PTR x означает адрес х, однако рассматриваемый как адрес байта, а не слова. (Напомним, что с одногои того же адреса может начинаться байт, слово и двойное слово;оператор PTR уточняет, какого размера ячейка имеется.)И еще одно замечание. Если в символьной команде, оперирующей со словами, указан непосредственный операнд размером вбайт, как, например, в командеMOV А Х , 8 O hто возникает некоторая неоднозначность: что будет записано в регистр АХ — число OOSOh (+128) или OFFSOh (-128)? В подобных ситуациях ассемблер формирует машинную команду, где операнд-байтрасширен до слова, причем расширение происходит со знаком, еслиоперанд был записан как отрицательное число, и без знака — в остальных случаях. Например:MOV АХ,-128 ; => MOV AX,OFFSOh (A:=-128)MOVAX,128 ; => MOV AX,OOSOh (А:=+128)MOV AX,80h ; => MOV AX,OOSOh (A:=+128)4.3.

Режимы процессора. Система команд процессоров 180x86...393СегментированиеС е г м е н т ы п а м я т и . С е г м е н т н ы е р е г и с т р ы . Первыемодели 180X86 имели оперативную память объемом 2'6 байтов(64 Кб) и потому использовали 16-битовые адреса. В последующихмоделях память была увеличена до 220 байтов (1 Мбайт = 1000 Кб),для чего уже необходимы 20-битовые адреса.

Однако в этих 180X86для преемственности были сохранены 16-битовые адреса: именнотакие адреса хранятся в регистрах и указываются в командах, а также получаются в результате модификации по базовым и индекснымрегистрам. Как же удается 16-битовыми адресами ссылаться на1 Мбайт памяти и большие объемы?Эта проблема решается с помощью сегментирования адресов(неявного базирования адресов).

В 180X86 вводится понятие «сегмент памяти». Так называется любой участок памяти размером до64 Кб и с начальным адресом, кратным 16. Абсолютный (20-битовый) адрес А любой ячейки памяти можно представить как сумму20-битового начального адреса (базы) В сегмента, которому принадлежит ячейка, и 16-битового смещения D — адреса этой ячейки, отсчитанного от начала сегмента: А = в + D. (Неоднозначность выбора сегмента не играет существенной роли, главное — чтобы сумма ви D давала нужный адрес.) Адрес в заносится в некоторый регистрS, а в команде, где должен быть указан адрес А, вместо него записывается пара из регистра s и смещения D (в MASM такая пара, называемая адресной парой или указателем, записывается как s: в).Процессор же устроен так, что при выполнении команды он преждевсего по паре s: D вычисляет абсолютный адрес А как сумму содержимого регистра s и смещения о и только затем обращается к памяти по этому адресу А.

Таким образом, заменяя в командах абсолютные адреса на адресные пары, удается адресовать всю память 16-битовыми адресами (смещениями).В качестве регистра s разрешается использовать не любой регистр, а только один из четырех регистров, называемых сегментными: CS, DS, SS и ES. В связи с этим одновременно можно работать счетырьмя сегментами памяти: начало одного из них загружается врегистр CS и все ссылки на ячейки этого сегмента указываются ввиде пар CS : D, начало другого заносится в DS и все ссылки на егоячейки задаются в виде пар DS : D и т.

д. Если одновременно надоработать с большим числом сегментов, то следует своевременно сохранять содержимое сегментных регистров и записывать в них начальные адреса пятого, шестого и т. д. сегментов.Отметим, что используемые сегменты могут располагаться в памяти произвольным образом: они могут не пересекаться или Пересе-394Глава 4. Персональные компьютерыкаться и даже совпадать. Какие сегменты памяти использовать, вкаких сегментных регистрах хранить их начальные адреса — все этодело автора программы.Как и все регистры 180X86, сегментные регистры имеют размерслова. Поэтому возникает вопрос: как удается разместить в них20-битовые начальные адреса сегментов памяти 9 Ответ следующий.Поскольку все эти адреса кратны 16 (см.

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

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

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