Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ЭВМ и ПУ.doc
Скачиваний:
64
Добавлен:
16.03.2015
Размер:
1.16 Mб
Скачать

2.Архитектура реального режима работы м/п семейства 8086

2.1.Форматы данных микропроцессора

2.1.1.Числа

Микропроцессор работает с двоичными числами со знаком и без знака, длиной 8 бит (1 байт), 16 бит (2 байта) или 32 бита (4 байта), с двоично-десятичными числами длиной 8 бит (BCD - числа) и с десятичными числами длиной 8 бит.

Байт - это число без знака в диапазоне от 0 до 255 или число со знаком в диапазоне от - 128 до +127.

Слово - это число без знака в диапазоне от 0 до 65535 или число со знаком, то от - 32768 до +32767.

Для 32-разрядных процессоров определены операции над двойными словами. Двойное слово - это число без знака в диапазоне от 0 до 4294967295, или число со знаком в диапазоне от -2147483648 до +2147483647.

Для чисел со знаком старший бит является знаковым: для положительных чисел он равен нулю, а для отрицательных чисел - единице.

Отрицательные числа представлены в дополнительном коде, который получается путем инвертирования всех разрядов положительного числа и суммирования полученного кода с единицей в младшем разряде.

Микропроцессор может выполнять арифметические операции над двоично-десятичными числами, хранящимися в упакованном (2 цифры в байте) формате, и над десятичными числами в неупакованном (1 цифра в байте) формате. Упакованный формат предполагает, что байт содержит две десятичные цифры, занимающие старший и младший полубайты. Диапазон представимых чисел составляет от 0 до 99. В неупакованном формате байт содержит одну десятичную цифру, которая обычно кодируется в символьном коде ASCII. Цифра 0 кодируется как 30Н, а цифра 9 - как 39Н.

2.1.2.Символы

Символьные данные хранятся в стандартном символьном коде ASCII, каждый символ занимает 1 байт. Микропроцессор ничего не знает об ASCII-коде и рассматривает символьные данные как цепочки произвольных байтов, то есть последовательность кодов символов.

2.1.3.Указатели

Указатели применяются для обращения к некоторым объектам в памяти, например адресам процедур или адресам меток. Близкий (NEAR) внутрисегментный указатель - это 16-битное или 32-битное смещение (в зависимости от разрядности микропроцессора) от базового адреса того сегмента, в котором находится указатель.

Далекий (FAR) межсегментный указатель применяется в тех случаях, когда программа осуществляет передачу управления в другой сегмент. Такой указатель определяет адрес сегмента и смещение внутри сегмента.

2.1.4.Цепочки

Микропроцессоры семейства 8086 могут оперировать цепочками(строками) байт, слов и двойных слов (32-разрядные процессоры). Под цепочкой понимается последовательность взаимосвязанных элементов, хранящихся по соседним адресам. Длина цепочки не может превышать длину сегмента. Система команд процессора имеет набор цепочечных примитивов, позволяющих эффективно работать с цепочками.

2.2.Адресация памяти

Микропроцессор делит адресное пространство на произвольное количество сегментов, каждый из которых содержит не более 64 Кб. Адрес первого байта сегмента всегда кратен 16 байтам и называется адресом сегмента (параграфом сегмента, номером сегмента). Для обращения к памяти внутри сегмента используется дополнительный адрес, называемый смещением, который указывает расположение байта относительно начала сегмента (относительный адрес или относительное смещение или исполнительный адрес). Адрес сегмента и смещение составляют логический адрес.

Физический адрес образуется с помощью объединения 16 разрядного адреса сегмента и 16 разрядного смещения. Если адрес сегмента сдвинуть влево на 4 бита и дополнить справа 4 нуля, то получится 20-разрядный базовый адрес сегмента. Если сложить базовый адрес сегмента с 16 разрядным смещением, то получится 20 разрядный физический адрес. Следовательно, адресуемая память составляет 220 байт = 1024 К = 1 М. Адрес сегмента - пятизначное шестнадцатеричное число, последняя цифра = нулю, так как адрес получается в результате умножения на 16. Смещение - четырехзначное шестнадцатеричное число. В памяти слово хранится в двух соседних байтах. Младший байт - младший адрес. Старший байт - старший адрес.