Starostin_Spec_micropr_ch2_2013
.pdfМинистерство образования и науки Российской Федерации
Государственное образовательное учреждение
КАЗАНСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им. А.Н.ТУПОЛЕВА
Б.А. Старостин
Специальные микропроцессоры и приборы в системах ориентации, стабилизации и навигации,
часть 2
Конспект лекций
Казань 2013
2
Лекции 1-2
Темы:
Представление данных в языке ассемблера
Архитектура микропроцессора 8086
Способы адресации
Система команд микропроцессора 8086
Взаимодействие с внешними устройствами
Архитектура сопроцессора 8087
Литература:
1. Юров В.И. Assembler : Учеб. пособие для вузов / В.И. Юров. -СПб.: Питер,
2003.-624с.
2. Абель П. Язык ассемблера для IBM PC и программирования / Пер. с англ.
Ю.В. Сальникова. – М.: Высш. шк. - 1992.
3.Пирогов В.Ю. ASSEMBLER. Учебный курс. – М.: Издательство Нолидж, 2001. - 848 с.
4.Зубков С.В. – Assembler для DOS, Windows и Unix – М: Пресс, 2000 г. - 608 с.
3. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT.
Основные понятия
Процессор – это устройство, которое осуществляет прием, обработку и выда-
чу информации.
Процессоры могут быть реализованы на различной физической основе: элек-
тронной, оптоэлектронной, оптической, биологической и даже на пневматической или гидравлической.
Микропроцессор представляет собой миниатюрное устройство, которое реа-
лизуется в виде одной или нескольких интегральных схем, которые содержат пол-
ный набор устройств, позволяющих обрабатывать данные в соответствии с заданной последовательностью команд – программой.
3
Обычно такие МП не имеют постоянного запоминающего устройства (ПЗУ, ROM), позволяющего хранить управляющие команды. Микропроцессоры, включа-
ющие в себя ПЗУ, носят название однокристальных ЭВМ.
По назначению различают универсальные и специализированные микро-
процессоры.
Универсальные микропроцессоры – это МП процессоры общего назначения,
которые предназначены для решения широкого круга задач вычисления, обработки и управления.
Специализированные микропроцессоры – предназначены для решения опреде-
ленного класса задач, а иногда только для решения одной конкретной задачи. Их существенными особенностями являются простота управления, компактность аппа-
ратурных средств, низкая стоимость и малая мощность потребления.
Универсальные микропроцессоры могут быть применены для решения широ-
кого круга разнообразных задач. При этом их эффективная производительность сла-
бо зависит от проблемной специфики решаемых задач. Специализация МП, т. е. его проблемная ориентация на ускоренное выполнение определенных функций, позво-
ляет резко увеличить эффективную производительность при решении только опре-
деленных задач.
Среди специализированных микропроцессоров можно выделить различные микроконтроллеры, ориентированные на выполнение сложных последовательностей логических операций; математические МП, предназначенные для повышения произ-
водительности при выполнении арифметических операций за счет, например мат-
ричных методов их выполнения; МП для обработки данных в различных областях применений и т. д. С помощью специализированных МП можно эффективно решать новые сложные задачи параллельной обработки данных.
Формы представления данных
Положительные целые числа
Целые числа принято записывать с помощью позиционной системы кодирова-
ния. В этом случае каждая позиция числа имеет свой вес, зависящий от используе-
4
мой системы счисления. Общая формула для формирования целых чисел, представ-
ленных в позиционном коде, имеет вид:
dn*pn + dn-1*pn-1 + … + d2*p2 + d1*p1 + d0*p0,
где
p – основание системы счисления,
d – цифровые значения (от 0 до p-1),
n – номер позиции (отсчитывается справа налево, начиная с 0).
Примеры перевода:
из десятичной системы счисления: 34910 → 3*102+4*101+9*100=34910;
из пятеричной системы счисления: 2435 → 2*52+4*51+5*50=2*25+4*5+3=7310;
из троичной системы счисления:
12023 → 1*33+2*32+0*31+2*30=1*27+2*9+0+2=4710.
в шестеричную систему счисления: 31710 → 12456
317|6 312|52|6
5|48|8|6
4|6|1
2
впятеричную систему счисления: 19010 → 12305
190|5 190|38|5
0|25| 7|5
35|1
2
Максимально возможное значение для n-разрядного числа вычисляется по формуле Max = pn-1, где p - основание системы счисления.
10 двоичных разрядов – 1023
5 троичных разрядов – 242
5
3 пятеричных разряда – 124
В вычислительной технике для представления чисел обычно используется двоичная система счисления. В этом случае требуется всего два уровня сигнала – низкий и высокий. Один двоичный разряд носит название бит, а 8 двоичных разря-
дов – байт.
Примеры перевода:
10 → 2
1110 → 14
10000001 → 129
11111111 → 255
Диапазоны чисел:
бит – от 0 до 1
байт – от 0 до 255
два байта – от 0 до 65535
Запись чисел в двоичной системе счисления выглядит обычно достаточно громоздко. Поэтому для компактности часто используют шестнадцатеричную си-
стему счисления. В шестнадцатеричной системе счисления диапазон возможных цифр – от 0 до 15. Для обозначения цифр больше 9 здесь дополнительно использу-
ются латинские буквы от A до F.
Перевод из двоичной системы в 16-ричную и наоборот производится очень просто: двоичное число разбивается на четверки битов и каждая из этих четверок заменяется соответствующим шестнадцатеричным числом:
1111 1110 → FE
1000 1010 → 8A
Один байт содержит 2 шестнадцатеричные цифры.
6
Аналогично производится преобразование из двоичной системы в восьмерич-
ную – только биты разбиваются на тетрады (по 3 бита).
Отрицательные целые числа
В ряде приложений вычислительной техники для чисел нет понятия знака. Это
справедливо, например, для адресов ячеек памяти, кодов ASCII символов, результа-
тов измерений многих физических величин, кодов управления устройствами, под-
ключаемыми к компьютеру. Для таких чисел естественно использовать весь диапа-
зон чисел, записываемых в ячейку того или иного размера. Если, однако, мы хотим работать как с положительными, так и с отрицательными числами, нам придется по-
ловину чисел из их полного диапазона считать положительными, а другую половину
– отрицательными. В результате диапазон изменения числа уменьшается в два раза.
Кроме того, необходимо предусмотреть систему кодирования, чтобы положитель-
ные и отрицательные числа не перекрывались.
В прямом коде знак числа определяется его старшим разрядом. В случае по-
ложительных чисел в этом разряде содержится 0, в случае отрицательных – 1.
В вычислительной технике принято записывать отрицательные числа в так называемом дополнительном коде, который образуется путем замены всех двоич-
ных нулей единицами и наоборот (обратный код) и прибавления к полученному
числу единицы.
Это справедливо как для байтовых (8-битовых) чисел, так и для чисел разме-
ром в слово или в двойное слово: |
|
|
|||
+1 |
→ 00000001 |
-1 |
→ 11111110+1=11111111 |
||
+25 |
→ 00011001 |
-25 |
→ 11100110+1=11100111 |
||
+1 |
→ 00000000 00000001 |
-1 |
→ 11111111 11111110+1=11111111 11111111 |
||
+25 |
→ 00000000 00011001 |
-25 |
→ 11111111 11100110+1=11111111 11100111 |
Такой способ образования отрицательных чисел удобен как минимум по трем причинам.
1). Существует только один 0:
|
7 |
+0 → 00000000 |
-0 → 11111111+1=00000000 |
2). Знак числа можно менять бесконечное число раз без каких-либо изменений |
|
и потерь: |
|
+5 → 00000101 |
-5 → 11111010+1=11111011 |
|
-(-5) → 00000100+1=00000101 |
3). Позволяет выполнять над числами арифметические операции по общим правилам с получением правильного результата. При этом операция вычитания сво-
дится к операции сложения с отрицательным числом:
5+(-5)=0 |
00000101+11111011=00000000 |
3-5=-2 |
00000011-00000101=11111110 |
3+(-5)=-2 |
00000011+11111011=11111110 |
Анализируя алгоритм образования отрицательного числа, можно заметить, что для всех отрицательных чисел характерно наличие двоичной единицы в старшем бите. Положительные числа, наоборот, имеют в старшем бите 0. Это справедливо для чисел любого размера.
4). Кроме того, из примеров видно, что для преобразования отрицательного 8-
битового числа в 16-битовое достаточно дополнить его слева восемью двоичными единицами. Для преобразования положительного 8-битового числа в слово его надо дополнить восемью двоичными нулями. То же справедливо и для преобразования
16-разрядного числа со знаком в 32-разрядное число со знаком, только добавить придется уже не 8, а 16 единиц или нулей.
Следует подчеркнуть, что знак числа условен. Одно и то же число можно в одном контексте рассматривать, как отрицательное (-5), а в другом – как положи-
тельное, или, правильнее, число без знака (FB=251). Знак числа является характери-
стикой не самого числа, а нашего представления о его смысле.
Двоично-десятичные числа
Поскольку для человека привычно оперировать числами, представленными в десятичной системе счисления, то иногда применяется компромиссное решение – двоично-десятичное представление чисел (BCD-числа). BCD – binary-coded decimal.
8
В таком формате выдают данные некоторые измерительные приборы; он же используется часами реального времени компьютеров IBM PC для хранения инфор-
мации о текущем времени.
Двоично-десятичный формат существует в двух разновидностях: упакован-
ный и распакованный. В первом случае в байте записывается двухразрядное деся-
тичное число от 00 до 99. Каждая цифра числа занимает половину байта и хранится в двоичной форме:
01 → 0000 0001
25 → 0010 1001
87 → 1000 0111
99 → 1001 1001
В двух байтах можно хранить в двоично-десятичном формате четырехразряд-
ные десятичные числа от 0000 до 9999: 9604 → 1001 1010 0000 0100 8230 → 1000 0010 0011 0000
Распакованный формат отличается от упакованного тем, что в каждом байте записывается лишь одна десятичная цифра (по-прежнему в двоичной форме). В этом случае в слове можно записать десятичные числа от 00 до 99 (см. рис. 2.13)
98 → 00001001 00001000
25 → 00000010 00000101
В случае упакованного и тем более распакованного двоично-десятичного представления чисел предполагается избыточность в хранении данных.
При хранении десятичных чисел в аппаратуре обычно используется более экономный упакованный формат; умножение и деление выполняются только с рас-
пакованными числами, операции же сложения и вычитания применимы и к тем, и к другим.
Представление символов
9
Символы обычно кодируются целыми числами. Один байт позволяет закоди-
ровать до 256 символов. Сюда входят некоторые управляющие коды (символ с ко-
дом 0Dh - конец строки), знаки препинания, цифры (символы с кодами 30h - 39h),
большие (41h - 5Ah) и маленькие (61h - 7Ah) латинские буквы. Вторая половина символьных кодов используется для алфавитов других языков и псевдографики,
набор и порядок символов в ней отличаются в разных странах и даже в пределах од-
ной страны. Для русских букв имеются как минимум две таблицы кодировок: в DOS
– кодировка ASCII, в WINDOWS – кодировка ANSY.
Существует также стандарт, использующий слова для хранения кодов симво-
лов, известный как UNICODE или UCS-2, и даже двойные слова (UCS-4). Кодировка
UNICODE содержит алфавиты многих языков.
10
Лекция 3
Архитектура микропроцессора 8086
Регистры процессора разделены на три группы в соответствии с выполняемы-
ми ими функциями. Это
группа регистров общего назначения;
указательная группа;
группа сегментных регистров.
Регистры общего |
|
Указатели и ин- |
Сегментные |
|
|||||
|
назначения |
дексные регистры |
регистры |
|
|||||
AX |
|
AH |
AL |
|
|
SP |
|
CS |
|
|
|
|
|
|
|
|
|
|
|
BX |
|
BH |
BL |
|
|
BP |
|
SS |
|
CX |
|
|
|
|
|
SI |
|
DS |
|
|
CH |
CL |
|
|
|
|
|||
DX |
|
|
|
|
|
DI |
|
ES |
|
|
DH |
DL |
|
|
|
|
|||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
IP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PSW |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистры общего назначения
Микропроцессор имеет четыре 16-разрядных (двухбайтовых) регистра общего назначения: AX, BX, CX, DX. Они предназначены для хранения операндов и резуль-
татов операций и допускают адресацию не только целых регистров, но и их млад-
шей и старшей половин. Каждый из этих регистров состоит из двух 8-разрядных
(однобайтовых регистров):
AX → AH, AL
BX → BH, BL
CX → CH, CL
DX → DH, DL
Указательные регистры
Индексные регистры – SI и DI. Это 16-разрядные регистры, которые не де-
лятся на 8-разрядные. Используются в индексных способах адресации.
Базовые регистры – SP, BP.