Практическая работа ОПРЕДЕЛЕНИЕ ФИЗИЧЕСКОГО АДРЕСА ПЕРЕХОДА И ЗНАЧЕНИЙ ФЛАГОВ ПРИ ВЫПОЛНЕНИИ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ.
учебно-методический материал на тему
Научиться определять физический адрес перехода и значения флагов при выполнении арифметических операций.
Скачать:
Вложение | Размер |
---|---|
pr_rab_fizadr.doc | 114.5 КБ |
Предварительный просмотр:
Практическая работа № 4
ОПРЕДЕЛЕНИЕ ФИЗИЧЕСКОГО АДРЕСА ПЕРЕХОДА И ЗНАЧЕНИЙ ФЛАГОВ ПРИ ВЫПОЛНЕНИИ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ.
1. Цель работы: Научиться определять физический адрес перехода и значения флагов при выполнении арифметических операций.
2. Порядок выполнения работы :
2.1. Повторить теоретический материал.
Организация оперативной памяти
ОП является основной памятью для хранения информации. Она организована как одномерный массив ячеек памяти размером в 1 байт. Каждый из байтов имеет уникальный 20 битный физический адрес в диапазоне от 00000 до FFFFFh (здесь и далее для записи адресов используется шестнадцатеричная система счисления, признаком которой является символ h в конце кода). Таким образом, размер адресного пространства ОП составляет 2 20 = 1Мбайт . Любые два смежных байта в памяти могут рассматриваться как 16-битовое слово. Младший байт слова имеет меньший адрес, а старший - больший. Так шестнадцатеричное число 1F8Ah , занимающее слово, в памяти будет расположено в последовательности 8Ah , 1Fh . Адресом слова считается адрес его младшего байта. Поэтому 20 битовый адрес памяти может рассматриваться и как адрес байта, и как адрес слова.
Команды, байты и слова данных можно размещать по любому адресу, что позволяет экономить память вследствие ее более полного заполнения. Однако для экономии времени выполнения программ целесообразно размещать слова данных в памяти, начиная с четного адреса, так как микропроцессор передает такие слова за один цикл работы шины. Слово с четным адресом называется выровненным по границе слов. Невыровненные слова данных с нечетным адресом допустимы, но для их передачи требуется два цикла шины, что снижает производительность ЭВМ. Заметим, что необходимое количество циклов считывания слова данных инициируется микропроцессором автоматически. Следует иметь в виду, что при операциях со стеком слова данных должны быть выровнены, а указатель стека инициирован на четный адрес, так как в таких операциях участвуют только слова данных.
Поток команд разделяется на байты при заполнении очереди команд внутри микропроцессора . Поэтому выравнивание команд практически не влияет на производительность и не используется.
Адресное пространство ОП делится на сегменты . Сегмент состоит из смежных ячеек ОП и является независимой и отдельно адресуемой единицей памяти, которая в базовой архитектуре персональной ЭВМ имеет фиксированную емкость 2 16 = 64К байт. Каждому сегменту назначается начальный (базовый) адрес, являющийся адресом первого байта сегмента в адресном поле ОП. Значение физического адреса ячейки складывается из адреса сегмента и смещения ячейки памяти относительно начала сегмента (внутрисегментное смещение). Для хранения значений адреса сегмента и смещения используются 16-битовые слова.
Чтобы получить 20-битовый физический адрес , микропроцессор автоматически осуществляет следующие операции. Значение базового адреса сегмента умножается на 16 (сдвиг на 4 разряда влево) и суммируется со значением смещения в сегменте ( рис. 1 ). В результате получается 20-битовое значение физического адреса . При суммировании может возникнуть перенос из старшего бита, который игнорируется. Это приводит к тому, что ОП оказывается как бы организованной по кольцевому принципу. За ячейкой с максимальным адресом FFFFFh следует ячейка с адресом 00000h .
Сегменты физически не привязаны к конкретному адресу ОП, и каждая ячейка памяти может принадлежать одновременно нескольким сегментам , так как базовый адрес сегмента может определяться любым 16-битовым значением. Сегменты могут быть смежными, неперекрывающимися, частично или полностью перекрывающимися. Вместе с тем, в соответствии с алгоритмом вычисления физического адреса , начальные адреса сегментов всегда кратны 16.
Сегментную группу образуют регистры CS, SS, DS и ES. Как говорилось ранее, участвующие в формировании адреса регистры ВХ, IP, SP, ВР, SI и DI имеют длину всего 16 бит, поэтому эффективный адрес имеет такую же длину. Но, с другой стороны, выдаваемый на шину адреса физический адрес должен содержать 20 бит. Дополнительные 4 бита образуются при сложении эффективного адреса с содержимым одного из сегментных регистров, как показано на рис. Перед сложением к содержимому сегментного регистра справа добавляются четыре нуля, что дает 20-битный результат. Если, например, (CS) = 123А и (IP) =341В, следующая команда будет выбираться по адресу 157ВВ
341В эффективный адрес
+
123А0 начальный адрес сегмента
----------
157ВВ физический адрес команды
Слово состояния процессора PSW микропроцессора 8086 содержит 16 бит, но семь из них не используются.
Флажки микропроцессора 8086 разделяются на условные (или флажки условий) , отражающие результат предыдущей операции АЛУ, и управляющие (или флажки управления), от которых зависит выполнение специальных функций.
Флажками условий являются:
Флажок знака SF. Равен старшему биту результата. Так как в дополнительном коде старший бит отрицательных чисел содержит 1, а у положительных чисел он равен 0, флажок SF показывает знак предыдущего результата.
Флажок нуля ZF. Устанавливается в 1 при получении нулевого результата и сбрасывается в 0, если результат отличается от нуля.
Флажок паритета PF. Устанавливается в 1, если младшие 8 бит результата содержат четное число единиц; в противном случае он сбрасывается в 0.
Флажок переноса CF. При сложении (вычитании) устанавливается в 1, если возникает перенос (заем) ид старшего бита. Другие команды также воздействуют на этот флажок, что будет отмечено при их обсуждении.
Флажок вспомогательного переноса AF. Устанавливается в 1 если при сложении (вычитании) возникает перенос (заем) из бита 3. Флажок предназначен только для двоично-десятичной арифметики.
Флажок переполнения OF. Устанавливается в 1, если возникает переполнение, т. е получение результата вне допустимого диапазона. При сложении этот флажок устанавливается, если имеется перенос в старший бит и нет переноса из старшего бита или наоборот. При вычитании он устанавливается, когда возникает заем из старшего бита, но заем в старший бит отсутствует, или наоборот.
Пусть, например, предыдущая команда производила следующее сложение:
0010 0011 0100 0101
+
0011 0010 0001 1001
---------------------------
0101 0101 0101 1110
Тогда после ее выполнения получаются такие состояния флажков
SF=0, ZF=0, PF=0, CF=0, AF=0, OF = 0.
Если в предыдущей команде выполнялось сложение
0101 0100 0011 1001
+
0101 0101 0110 1010
---------------------------
1001 1001 1010 0011
Флажки принимают следующие состояния:
SF=1, ZF=0, PF=1, CF=0, AF=1, OF = 1.
Флажки управления микропроцессора 8086:
Флажок направления DF. Применяется в командах манипуляций цепочками. Если он сброшен, цепочка обрабатывается с первого элемента, имеющего наименьший адрес. В противном случае цепочка обрабатывается от наибольшего адреса к наименьшему.
Флажок разрешения прерываний IF. Когда установлен этот флажок, ЦП распознает маскируемые прерывания; в противном случае эти прерывания игнорируются .
Флажок прослеживания (трассировки) TF. Когда этот флажок установлен, после выполнения каждой команды генерируется внутреннее прерывание .
2.2. Решить примеры согласно номеру - варианту.
2.3. В соответствии со своим вариантом выполнить демонстрацию работы регистра флагов в отладчике debug. (см. Пример - Протокол 2 ).
В задании использовать числа: 62А0 и число В своего варианта.
Пример:
Найти сумму и состояние флажков AF, SF, ZF, CF, OF, PF после прибавления 62А0 к 4C75
Протокол 2
Уметь пояснить состояние флагов AF, SF, ZF, CF, OF, PF ( Обозначение флагов в отладчике debug ).
Обозначение флагов
Флаг | Установлен | Сбpошен | Описание |
CF | CY | NC | Флаг пеpеноса. Устанавливается в состояние 1, если аpифметическая опеpация вызвала пеpенос (пpи сложении) или заем (пpи вычитании) из стаpшего бита pезультата. В пpотивном случае флаг CF сбpасывается |
PF | PO | PE | Флаг четности. Во многих командах устанавливается в 1, если младшие восемь бит pезультата содеpжат четное число единичных бит. В пpотивном случае флаг PF сбpасывается в 0. |
AF | AC | NA | Флаг вспомогательного пеpеноса.Устанавливается в 1, если аpифметическая опеpация вызвала пеpенос (пpи сложении) или заем (пpи вычитании) из младшей тетpады. В пpотивном случае флаг CF сбpасывается в 0. Пpогpаммно этот флаг недоступен. |
ZF | ZR | NZ | Флаг нуля. Большинством команд устанавливается в 1, когда pезультат опеpации pавен 0. |
SF | NG | PL | Флаг знака. Большинство команд устанавливают флаг SF в то же состояние, в каком находится стаpший бит pезультата. |
IF | EI | DI | Флаг пpеpывания. Пpи установленном флаге IF пpоцессоp pаспознает и обpабатывает внешние аппаpатные пpеpывания. Пpи IF=0 пpоцессоp игноpиpует аппаpатные пpеpывания. |
DF | UP | DN | Флаг напpавления обpаботки цепочек.Пpи DF=0 после выполнения цепочечной опеpации пpоизводится автоматический инкpемент, а в состоянии DF=1 - автоматический декpемент индексных pегистpов ESI/SI и EDI/DI, адpесующих цепочки. |
OF | NV | OV | Флаг пеpеполнения. Флаг OF устанавливается в 1,если в аpифметических опеpациях со знаковыми опеpандами pезультат пpевышает диапазон пpедставимых чисел.В пpотивном случае OF сбpасывается в 0. |
2.4 Подготовить отчет.
3. Содержание отчета :
3.1. Название работы.
3.2. Цель работы.
3.3. Примеры.
Условие задания | |||
1 | 2 | 3 | 4 |
Если физичес-кий адрес перехода | Пусть ЕА данного равен C; и (DS)=В. Чему равен физический адрес данного? | Найти сумму и состояние | Найти разность и состояние флажков |
Вариант | |||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
А=5А230 В=8700 С=5200 | A=5А230 В=5600 С=7800 | A=5А230 В=6700 С=6600 | А=5А230 В=5500 С=6600 | А=5А230 В=4FFF С=5500 | А=6F740 B=7800 C=8800 | A=6F740 B=9800 C=6600 | A=6F740 B=9600 C=7800 | A=6F740 B=9100 C=7100 | A=6F740 B=A200 C=9800 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
A=6F740 B=F400 C=7400 | A=6F740 B=F400 C=7400 | A=7C42D B=B456 C=6EE5 | A=7C42D B=C567 C=6DD5 | A=7C42D B=D678 C=6CC5 | A=8E052 B=E789 C=7BB4 | A=8E052 B=F123 C=7AA4 | A=8E052 B=A234 C=7FF4 | A=8E052 B=B345 C=7EE4 | A=8E052 B=C456 C=7DD4 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
А=5C230 В=8710 С=5200 | A=5B230 В=5620 С=7800 | A=5C230 В=6730 С=6600 | А=5B230 В=5540 С=6600 | А=5D230 В=4FEF С=5500 | А=6E740 B=7850 C=8800 | A=6C740 B=9860 C=6600 | A=6E740 B=9670 C=7800 | A=6D740 B=9180 C=7100 | A=6D740 B=A290 C=9800 |
31 | 32 | 33 | 34 | ||||||
A=6FA40 B=F4A0 C=7400 | A=6FB40 B=F4B0 C=7400 | A=7CA2D B=B476 C=6EE5 | A=7CB2D B=C5A7 C=6DD5 |
По теме: методические разработки, презентации и конспекты
Урок п/о "Выполнение основных операций штукатурных процессов: набрасывание и разравнивание раствора на стены."
урок учебной практики...
Комплексная работа "Подготовка и выполнение токарной операции"
Выполнение данной комплексной работы осуществляется на практическом занятии по учебной практике, призванном обучить будущих операторов токарных станков процессу наладки станка на выполнение перехода, ...
" Многочлены. Арифметические операции над многочленами"- теоретический тест.
Тест состоит из вопросов теории на тему: "Многочлены. Операции над многочленами". Имеются ответы....
План урока учебной практики Тема урока: "Выполнение технологических операций по сортированию рыбы, морепродуктов по видам, размерам, и качеству в соответствии с требованиями ГОСТ, ОСТ, ТУ. Изучение изменения рыбы-сырца"
План урока учебной практикив группе № ОР 1720 по профессии «Обработчик рыбы и морепродуктов»ПК 01 « Производство охлажденной и мороженой продукции»МДК 01.01 Т...
Инженерная графика. 2 курс. Методические рекомендации к выполнению практической работы №45. Построение по двум заданным видам третьего, выполнение необходимых разрезов и выполнение аксонометрической проекции с вырезом передней четверти детали
Освоение последовательности построения и выполнение построения третьего вида и изометрии с вырезом четверти....
Практическое занятие 1. Выполнение арифметических действий над числами.
Практическое занятие 1. Выполнение арифметических действий над числами....