Chapter_06 (1110558), страница 3

Файл №1110558 Chapter_06 (Книга с сайта Баулы по главам) 3 страницаChapter_06 (1110558) страница 32019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В любой момент времени для младшей модели определены четыре сегмента (хотя для старших моделей число сегментовбольше). Это означает, что есть четыре сегментных регистра, которые указывают на определённыеобласти памяти. Каждый сегментный регистр имеет длину 16 разрядов, а в то же время для адресации любого места нашей памяти необходимо, как мы уже говорили, 20 разрядов. Для того чтобысегмент мог указывать на некоторое место оперативной памяти, адрес начала сегмента получаетсяпосле умножения значения сегментного регистра на число 16. Правда, как легко понять, при такомспособе задания начала сегмента, он может начинаться не с любого места оперативной памяти, атолько с адресов, кратных 16 (в некоторых книгах по Ассемблеру такие участки памяти называютсяпараграфами).Итак, производить обмен с памятью можно только относительно одного из них этих сегментныхрегистров.

Таким образом, физический адрес числа или команды вычисляется центральным процессором по формулеAфиз := (SEG*16 + A)mod 220,где SEG – значение сегментного регистра, а A –заданное в команде смещение. Физический адрес берётся по модулю 220, чтобы он не вышел за максимальный адрес памяти.В качестве мнемонических обозначений сегментных регистров выбраны следующие двухбуквенные служебные имена: кодовый сегментный регистр (CS), сегментный регистр данных (DS),сегментный регистр стека (SS) и дополнительный сегментный регистр (ES). Эти имена (как и именавсех остальных регистров нашей ЭВМ) являются служебными в языке Ассемблера.

Напомним, чтослужебные имена нельзя использовать ни в каком другом смысле, кроме того, который определён вязыке.Смысл названий регистров скоро проясниться. Каждый из этих регистров может адресовать сегмент памяти длиной от 1 до 216 байт (напомним, что вся память состоит из 220 ячеек), при этом "настоящая" длина сегмента известна только программисту.

Так как физический адрес в приведённойвыше формуле берётся по модулю 220, то, очевидно, что память, как и в нашей учебной ЭВМ,"замкнута в кольцо". Другими словами, в одном сегменте могут находиться ячейки с самыми боль-1Для любознательных читателей отметим, что, например, в семейства ЭВМ IBM-360/370, которые началивыпускать свою первую модель позже, чем в нашем семействе, уже принят "естественный" для программистаформат целого числа, где крайний левый бит задаёт знак числа, а затем записывается прямой код модуля числа.7шими и самыми маленькими адресами основной памяти. На рис.

6.1 показан пример расположениясегментов в памяти.Стоит отметить, что сегментные регистры являются специализированными,предназначенными только для хранения адресов сегментов, поэтому арифметиче- DSские операции (сложение, вычитание и др.) над их содержимым в языке машиныне предусмотрены.Заметим, что даже если все сегменты не перекрываются и имеют максималь- CSный размер, то и в этом случае центральный процессор в каждый момент времениимеет доступ только к одной четвёртой от общего объёма оперативной памяти.SS6.6.

Мнемонические обозначения регистровВ силу того, что в ЭВМ все регистры имеют безликие двоичные обозначения,программисты предпочитают использовать в своих программах на Ассемблеремнемонические названия регистров. Регистры общего назначения, каждый из которых может складывать, вычитать и просто хранить данные, а некоторые – ещёумножать и делить, обозначают следующими служебными именами: AX, BX, CX,DX. Для обеспечения многообразия форматов данных каждый из них разбит на двечасти по 8 бит.

Биты нумеруются немного непривычно справа налево, начиная снуля, такая нумерация естественна для записи чисел: последняя двоичная цифра вчисле задаёт младший разряд этого числа (с показателем основания в нулевой степени:15AXBXCXDX7AHBHCHDHESРис. 6.1. Примерположения сегментов в памяти.0ALBLCLDL16 битКаждый из регистров AH, AL, BH, BL, CH, CL, DH и DL может быть использован в машинных командах как самостоятельный регистр, на них можно выполнять операции сложения и вычитания. Вдальнейшем условное обозначение r8 мы будем использовать для обозначения любого короткого (8разрядного) адресуемого регистра.Существуют также четыре регистра с именами SI, DI, SP и BP, которые также могут использоваться для проведения сложения и вычитания, но они уже не делятся на половинки:150SIDISPBP16 битВ основном эти четыре регистра используются как индексные, т.е.

на них обычно храниться положение конкретного элемента в некотором массиве. Условное обозначение r16 будем использоватьдля указания любого из регистров AX, BX, CX, DX, SI, DI, SP и BP.Кроме перечисленных выше регистров программист имеет дело с регистром IP (instructionpointer), который называется счётчиком адреса (в учебной машине мы обозначали его как RA).

Этотрегистр содержит адрес следующей исполняемой команды (точнее, содержит смещение этой команды относительно начала кодового сегмента, адрес начала этого сегмента равен значению сегментного регистра CS, умноженному на 16).16 битIPИ, наконец, как уже упоминалось, архитектурой изучаемой ЭВМ предусмотрен регистр флагов сименем FLAGS. Он содержит шестнадцать одноразрядных флагов, например, ранее упоминавшиеся8флаги CF и OF.

Конкретные номера битов, содержащих тот или иной флаг, для понимания архитектуры несущественны, и приводиться здесь не будут. Заметим также, что эти номера нам не надо будет знать и при программировании на языке Ассемблера.16 битFLAGSCFOF………Как уже показывалось на рисунках, все биты в регистрах пронумерованы справа налево: в шестнадцатибитных – от 0 до 15, в восьмибитных – от 0 до 7. Как и в Паскале, в языке Ассемблера принято такое же соглашение по семантике всех имён: большие и маленькие буквы не различается.

Таким образом, имена можно писать как заглавными, так и прописными буквами, например, именаAX,Ax,aX и ax обозначают в нашем языке Ассемблера один и тот же регистр.Рассмотрим теперь особенности хранения чисел в регистровой и основной памяти ЭВМ. Запишем, например, шестнадцатеричное число 1234h в какой-нибудь 16-тиразрядный регистр (каждаяшестнадцатеричная цифра занимает по 4 бита):1 2 3 4Теперь перешлём машинной командой содержимое этого регистра в память в ячейки с адресами,например, 100 и 101.

Так вот: в ячейку с первым (старшим) адресом 100 при такой пересылке запишется число из младшего байта регистра 34h, а в ячейку со вторым (младшим) адресом 101 запишется число из первого (старшего) байта регистр 12h. Говорят, что целое число представлено восновной памяти (в отличие от регистров) в перевёрнутом виде. Это связано с тем, что в младшихмоделях ЭВМ при каждом обращении к памяти в центральный процессор читался всего один байт.Таким образом, для того, чтобы считать двухбайтное целое число, было необходимо дважды обратиться к памяти, поэтому было удобно (например, для проведения операция сложения "в столбик")получать из памяти сначала младшие цифры числа, а затем – старшие. В современной архитектуре заодно обращение из памяти получают сразу 8, 16 и бóльшее число байт, но из-за совместимости моделей семейства пришлось оставить перевёрнутое представление чисел, что, конечно, весьма неудобно для программистов.

Заметим, что в отличие от чисел, команды хранятся в памяти в обычном(не перевернутом) виде.6.7. Структура командТеперь рассмотрим структуру машинных команд самых распространённых форматов регистррегистр (RR) и регистр-память (RX). Формат регистр–регистр.6 битКОП1 бит1 бит2 бита3 бита3 битаw11R1R2dКоманды этого формата занимают в памяти 2 байта.

Первое поле команды – код операции – занимает 6 первых бит, что позволяет задавать до 64 различных операций. Далее следуют однобитныеполя с именами d и w, где d – так называемый бит направления, а w – бит размера аргумента, последующие два бита для этого формата всегда равны 11, а последние две части (по 3 бита каждая)задают номера регистров-операндов команды.Стоит подробнее рассмотреть назначение битов d и w.

Бит d задаёт направление выполнениякоманды, а именно:<R1> := <R1>  <R2> при d = 0<R2> := <R2>  <R1> при d = 1.Для формата регистр-регистр этот бит не имеет большого значения, так как программист всегдаможет поменять в команде регистры первого и второго операнда местами, однако для формата регистр-память этот бит очень важен, так как может превращать формат регистр-память (RX) в форматпамять-регистр (XR). Именно поэтому в форматах команд указывается только один вид RX.Бит w задаёт размер регистров-операндов, а соответствие двоичных номеров регистров и ихимён можно определить по таблице 6.1.9Таблица 6.1r1,2000001010011100101110111w = 1AXCXDXBXSPBPSIDIw = 0ALCLDLBLAHCHDHBHВ младших моделях ЭВМ нашего семейства в таком формате возможна работа лишь с упомянутыми в таблице регистрами.

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

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

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

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