Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроцесоры_Ответы

.pdf
Скачиваний:
13
Добавлен:
17.03.2016
Размер:
1.48 Mб
Скачать

Тема 1.1: Класифікація мікропроцесорів. Архітектура процесорів

Intel 8086.

1.1. Гарвардская архитектура микропроцессоров

Простейшая архитектура процессора, общая для CISK и RISK называется гарвардской.

 

 

 

 

ШД

 

 

 

 

 

 

 

 

ПЗУ программ

ША

 

ША

 

 

ШД

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ОЗУ данных

(ROM)

 

ШУ

 

 

ДешифраторШУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

команд

 

 

 

 

 

(RAM)

 

 

 

 

 

 

 

 

 

 

 

 

ШД

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ШД

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Стек

Регистры АХ, ВХ

ШД

ШД

IN/OUT

ПЗУ – память програмного кода и констант ОЗУ - память данных, предназначена для временного хранения данных.

Дешифратор команд предназначен для дешифрации програмного кода, считуемого из ПЗУ. Стек – микросхема ОЗУ для временного хранения данных и номера прерывания (адрес

внешнего устройства).

IN/OUT – интерфейс ввода – ввода.

Регистры – програмируемые микросхемы для хранения данных, извлекаемых из стека и прерываний, устанавливаемых для интерфейса вводавывода.

1.2. Шина ардесу, шина данных, шина управления. Предназначение шин

ША – служит для передачи адресов при обращении к памяти или устройства вводавывода

ШУ – предназначена для передачи управляющих сигналов.

ШД – предназначена для пересылки данных между узлами.

1.3. Архітектура CISK та RISK. Визначення і спеціалізація

Особенностью микропроцессоров с RISK архитектурой является ограниченный набор микрокоманд.

Для увеличения быстродействия RISK процессоров принимают следующие решения:

1)увеличение количества регистров

2)использование стандартного набора команд (не более 5 мс)

3)увеличение разрядности шины данных

Особенности процессоров, выполненных с CISK :

1) специализированный интерфейс для подключения внешних устройств (SATA или ISA)

2) расширенный набор микрокоманд

 

3) разделение на шину адреса и шину управления

 

1.4. Структура вбудованого мікроконтролеру

 

ШД, ШУ

 

 

Шшоолоор454545ЩШ

Память программ

 

 

 

 

Ядро МП

 

Програмный интерфейс

Память данных

Тактовые сигналы

ШД

ШУ

 

На чипе встроенного микропроцессора также релизуются следующие компоненты:

Схема запуска МП, внутренний генератор тактовых импульсов, таймеры, интерфейс вводавывода, схема питания.

1.5. Системна шина

Объединяет несколько микросхем в микропроцессоре и имеет универсальные номера линий:

-адреса

-питания микросхем

-управляющих выводов микросхем.

Тема 2.2: Арифметичні операції над числами. Логічні операції над числами та строками. Умовні та безумовні переходи.

2.2.1 Додавання цілих чисел. Синтаксис команд

Для команди ADD в якості приймача або джерела може бути регістр або змінна

ADD Приймач, Джерело, де Приймач ← Приймач + Джерело

Пр. ADD numbers mov BX, 1FFEh mov CX, 3

ADD BX, CX ;BX=2001h, CX=0003h

Команда ADC враховує перенесення старшого розряду при додаванні.

ADC Приймач, Джерело, де Приймач ← Приймач + Джерело + CF

Пр. mov AL, 0FFh

 

das

;AL=AL-60h, CF=1 (das встановлю прапор перенесення)

mov AX, 1125h

 

ADC AX, 2C25h ; AX=3D4Bh, if CF=1, якщо не додавати 1, то АХ=3D4A

Обмеження: в якості приймача не може застосовуватися значення.

2.2.2 Віднімання цілих чисел. Синтаксис команд

SUB Приймач, Джерело, де Приймач ← Приймач – Джерело

Пр. mov AX, 100 mov BX, 60

SUB AX, BX ; AX=60, BX=60

Команда SBB враховує позичання одиниці з старшого розряду.

SBB Приймач, Джерело, де Приймач ← Приймач – Джерело – CF.

Приклад, коли в якості джерела виступає значення data, а в якості приймача –

змінна mem.

mov AX, data

sub mem, AX ; AX = -256

membs dd 4, 8, 16, 32

; address: leas+shift

mov BX, offset membs

; offset повертає базовий адрес масива.

mov DI, 5

 

lea SI, [BX, DI]

 

2.2.3 Множення цілих чисел. Синтаксис команд.

Команда MUL – множення без знака.

Перший множник поміщають завжди в регістр AL або AX, а другий – в регістр або

змінну, яка являється джерелом.

 

 

 

 

 

 

 

 

MUL Джерело

; AX←(AL)·(Джерело – число 8 байт)

 

 

 

 

 

 

 

DX : AX ←(AL)·(Джерело – число 16 байт)

 

AH

 

AL

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

BX

 

 

AX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DX

 

 

AX

 

 

 

AX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пр.

mov AL, 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov BL, 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MUL BL

; AX=00Fh or AX=15

 

 

 

 

 

 

 

 

 

mov AX, 256

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MUL BX

;DX=0001h and AX=0000h, or DX: AX = 65536

mov AL, 126

MUL fls ;AX=0276h or AX=630 (fls db 5)

Команда IMUL – множення з знаком.

IMUL Джерело ; аналогічно MUL, Джерело – число з знаком.

Пр. mov AL, -5 mov BL, 3

IMUL BL; AX=00Fh or AX=15.

2.2.4 Ділення цілих чисел. Синтаксис команд

Команда DIV – команда ділення цілих чисел без знака.

Дільник поміщається в регістр або змінну, які являються джерелом для DIV. Ділене завжди поміщається в регістр АХ або пару регістрів DX:AX.

Якщо число 8 байт, то його поміщають в AX(AH, AL).

Якщо число 16 байт, то відповідно пара регістрів DX:AX розглядається як старші і молодші розряди цього числа.

DIV Джерело ; AH, AL←(AH:AL)/(Джерело – число 8 байт)

;в AL отримане число, в AH – остача від ділення

;DX:AX ← (DX:AX) /(Джерело – число 16 байт)

; в AX – ціле число, в DX – остача від ділення.

 

AX

 

 

 

AH

 

 

AL

 

 

 

 

 

 

 

 

 

→ AL, AH – остача

 

 

 

 

 

 

 

 

 

 

DX

 

 

AX

 

 

 

 

 

 

 

 

→ AX, DX – остача

 

 

 

Пр.

div numbers

 

 

 

 

mov AX, 506

 

 

 

 

mov BL, 50

 

 

 

 

div BL

 

 

;AL=0Ah, AH=06h

 

mov DX, word prt long+2

; старша частина числа

 

mov AX, word ptr long

;молодша частина числа.

 

mov CX, 256

 

 

 

 

div CX ; AX=0100h, DX=0001h

 

Команда IDIV – ділення цілих чисел з знаком.

 

IDIV Джерело

 

;аналогічно DIV, джерело – число з знаком.

Пр.

idiv numbers

 

 

 

 

mov AX, 506

 

 

 

 

mov BL, 50

 

 

 

 

idiv BL; AL=0Ah, AH=06h

 

mov AX,-506

 

mov BL, 50

 

idiv BL

;AL=F6h or AL=-10, AH=FAh (в AH знак F)

2.2.5 Арифметичний зсув вліво і вправо. Синтаксис команд

Команды ROL и ROR реализуют простой циклический сдвиг влево и вправо соответственно, помещая значение из выдвигаемого бита в освобождающийся бит. Поле операнда команд сдвига имеет вид mem/reg,count. Опреанд count определяет число сдвигов и может быть указан как констан та 1 или как регистр CL. В первом случае выполняется сдвиг на один бит, а во втором число сдвигов определяется содержимым регистра CL, которое воспринимается как беззнаковое число.

 

Формат команды:

 

 

ROL

mem/reg,1

ROL

mem/reg,CL

ROR

mem/reg,1

ROR

mem/reg,CL

2.2.6 Безумовний перехід та порівняння. Синтаксис команд.

Команды безусловного перехода имеют общую мнемонику JMP. Пример:

mov ah, 9 jmp label add bl, al

label: sub bl, ax

Для организации условного перехода применяется команда «сравнение операндов». CMP операнд 1, операнд 2

Пример

.data

len equ 10;

.code

cmp ax, len

Jne m1( если не равно, переход на m1) m1: ax < > len

2.2.7 Команди умовного переходу. Умови переходу.

Анализируют флаги после применения команды cmp и выполняют переход на метку по условию.

jne zF=0 если не равны значения операндов je zF=1 если равно

jNz zF=0 если не ноль (опер_1 –опер_2) jz zF=1если ноль (опер_1 –опер_2)

2.2.8 Логічні операції. Синтаксис команд

Команда логического умножения: AND опер_1, опер_2 Устанавливает флаги sF,zF,pF Логическое побитовое сложение OR опер_1, опер_2

Устанавливает флаги sF, zF, pF, oF, cF Логическое исключающее «или»: XOR опер_1, опер_2

Устанавливает те же флаги Логическое отрицание NOT опер_1

Тема 2.3: Процедури та організація циклів. Перевірка стану стягів. Робота з адресами та покажчиками.

2.3.1 і 2.3.2 Команди циклічного зсуву вліво і вправо

Команды ROL и ROR реализуют простой циклический сдвиг влево и вправо соответственно, помещая значение из выдвигаемого бита в освобождающийся бит. Поле операнда команд сдвига имеет вид mem/reg,count. Опреанд count определяет число сдвигов и может быть указан как констан та 1 или как регистр CL. В первом случае выполняется сдвиг на один бит, а во втором число сдвигов определяется содержимым регистра CL, которое воспринимается как беззнаковое число.

 

Формат команды:

 

 

ROL

mem/reg,1

ROL

mem/reg,CL

ROR

mem/reg,1

ROR

mem/reg,CL

2.3.3. Команди організації циклів. Синтаксис команд

Структура циклов <метка>:

Тело цикла Loop <метка>

Команда loop выполняет уменьшение значения в регистре сх на единицу. Пример

mov cx, 10 jcxz label; cycle;

dec cx; loop cycle; label: ;

<метка>:

Loopne <метка> ; уменьшение значения сх на единицу; если zF=0 cx=cx-1 Переход на на <метку> внутри сегмента цикла

Если zF=1 переход на <метку> вне cегмента

2.3.4. Префікс повторення команд передачі даних. Приклад. mov cx, 3

rep mov ax, bx

Команда повторяется сх раз.

Тема 2.4: Організація обміну даними. Пересилка даних. Ввід/вивід даних в порт.

2.4.1 Команди передачы даних. Синтаксис команд mov <операнд-источник>, <операнд-приемник>; операнд-источник ->операнд-приемник

xchg <операнд 1>, <операнд 2>; операнд 1<->операнд 2

xchg – команда двунаправленной пересылки

2.4.2. Команди встановлення та збросу флагів

Позволяет принудительно установить значение флагов. STC; устанавливает CF=1

CLC; сбросить флаг в CF=0 Пример

STC; CF=1

jc label ; есть перенос перейти на label

2.4.3 Команди напрямку переміщення по строчці

STD - установка DF=1

CLD - установка DF=0

DF используется для указания направления движения при побитном анализе.

2.4.4 Загрузка адресу змінної в памяті

LEA – регистр, <операнд>

Загружает в регистр относительный адрес операнда. MOV регистр, offset <операвнд>

Команда загружает в регистр относительный адрес операнда со смещением. (оffset <начальный адрес> + <смещение>)

Тема 2.5: Структури даних. Операції з масивами. Використання підпрограм.

2.5.1. Пряма адресація. Доступ до змінної в памяті.

.data

mem 1 dw 1 Deh

 

.code

 

mov AX, mem 1;

AX<- [1DFh]

lea SI, [AX+0Fh];

SI<-[1DFh+0Fh]

2.5.2. Базова адресація. Сегментна адреса.

Пример доступа к ячейке памяти с базовым адресом А020 mov si, A020h; si <- значение элемента

mov ax, [si]; ax<- значение по адресу А020h

2.5.3. Індексна адресація із зсувом. Ефективний адрес операнду

Используется для доступа к произвольным элементам массива.

.data

 

 

base

dw 0Fh

 

shift

dw 1DFFh

.code

 

 

mov

bx, base;

bx<-base

mov

di, shift;

di<- shift

lea

si, [bx+di]; si<-[bx+di]

mov ax, [si];

ax<- значение по адресу si

2.5.4. Базово-індексна адресація. Формування адресу в памяті

Формирование адреса

.date

Mem dd EFFh

.code

Mov dx, mem

2.5.5. Використання ефективного адресу прироботі з масивами

Пример организации доступа к элементам массива

.data

mas db -1,0,3,-8,0

.code

lea ax, mas; получение относительного адреса первого элементав массива mov bx, 2h; формируем смещение в 2 байта

mov dx, [ax+bx]

2.5.6. Використання підпрограм. Синтаксис команди.

Call <метка>

;точка выхода из подпрограммы

;конец сегмента данных

<metka>

;тело подпрограммы

ret

Тема 3.1: Структурна організація мікропроцесорів сімейства i8080.

3.1.1. Регістри даних загального призначення.

Ці вісім регістрів доступні для зберігання проміжних даних і вказівників. Вони є 16 – ти розрядними регістрами АХ, ВХ, СХ, ДХ, ВР, SI, SP.,DI.

Соответствуют типу даных dv , которые могут быть занесены в эти регистры. Эти регистры используются для выполнения арихметических и логических операций: сложение(add) вычисление(sub) сложение(and).

Типичным представителем 8-разрядного МП есть Intel 8080, КР 580.

МП имеет 8-разрядную шину данных и 8-разрядное операционное устройство, 16разрядную шину адреса. МП, выполненный на основе n-МОП технологий. Питание имеют уровни 12В, ±5В.

8080 является однокристальным микропроцессором, работающим с 8-разрядной шиной данных и 16-разрядной шиной адреса. Управляющие сигналы передаются по шине управления. Шины отделены друг от друга. Структура Intel 8080 приведена на рис. 1.

3.1.2. Сегментні регістри. Состав шинного інтерфейсу.

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

Вторая особенность использования сегментов состоит в том, что каждая ячейка памяти адресуется через многие возможные сочетания «сегмент:смещение». Например, адрес памяти 100h адресуется с помощью следующих значений «сегмент:смещение»: 0:100h, 1:F0h, 2:E0h и т.д., так как при вычислении всех этих пар «сегмент:смещение» получается значение адреса 100h.

Аналогично регистрам общего назначения каждый сегментный регистр играет свою, конкретную роль. Регистр CS указывает на код программы, DS указывает на данные, SS - на стек, ES - на дополнительный сегмент данных, который может использоваться так, как это необходимо.

Регистр CS указывает на начало блока памяти объемом 64К, или сегмент кода, в котором находится следующая выполняемая команда. Следующая команда, которую нужно выполнить, находится по смещению, определяемому в сегменте кода регистром IP, т.е.

Регистр CS можно изменять с помощью многих команд, включая отдельные команды перехода, вызовы и возвраты управления. Ни при каких обстоятельствах регистр CS нельзя загрузить непосредственно

Регистр DS указывает на начало сегмента данных, которые представляет собой блок памяти объемом 64К, в котором находится большинство размещенных в памяти операндов. Обычно для ссылки на адреса памяти используются смещения, предполагающие использование регистров BX, SI или DI. В основном сегмент данных представляет собой то, о чем говорит его название: как правило, это сегмент, в котором находится текущий набор данных.

Регистр ES указывает на начало блока памяти объемом 64К, который называется дополнительным сегментом. Как и подразумевает его название, дополнительный сегмент не служит для какой-то конкретной цели, но доступен тогда, когда в нем возникает необходимость.

Интерфейс системной шины – з’єднує декілька мікросхем і має універсальні номера ліній: адреса , питание мікросхем, управляючих віводов

3.1.3. Індексні регістри. Регістр флагів.

К регистрам общего назначения иногда относят и индексные регистры процессора (или

SI, DI и ВР для 16-разрядных действий). Обычно эти регистры используются для адресации памяти: обращения к массивам, индексирования и т.д. Отсюда их имена: индекс источника (Source Index), индекс приемника (Destination Index), указатель базы

(Base Pointer).

Но хранить в них только адреса совсем необязательно: регистры могут содержать произвольные данные. Эти регистры программно доступны, то есть их содержание может быть изменено программистом. Другие регистры лучше «руками не трогать».

У регистров ESI, EDI и ЕВР существуют только в 16-разрядная и 32-разрядная версии. Регистри флагів Флаги состояния (биты 0, 2, 4, 6, 7 и 11) отражают результат выполнения арифметических инструкций, таких как ADD, SUB, MUL, DIV.

CF — устанавливается при переносе из/заѐме в (при вычитании) старший значащий бит результата и показывает наличие переполнения в беззнаковой целочисленной арифметике. Также используется в длинной арифметике.

PF — устанавливается, если младший значащий байт результата содержит чѐтное число единичных (ненулевых) битов. Изначально этот флаг был ориентирован на

использование в коммуникационных программах: при передаче данных по линиям связи для контроля мог также передаваться бит чѐтности (см., например: RS232#Принцип работы) и инструкции для проверки флага чѐтности облегчали проверку целостности данных.

AF — устанавливается при переносе из/заѐме из бита 3 результата. Этот флаг ориентирован на использование в двоично-десятичной (binary coded decimal, BCD) арифметике.

ZF — устанавливается, если результат равен нулю.

SF — равен значению старшего значащего бита результата, который является знаковым битом в знаковой арифметике.

OF — устанавливается, если целочисленный результат слишком длинный для размещения в целевом операнде (регистре или ячейке памяти). Этот флаг показывает наличие переполнения в знаковой целочисленной арифметике (в дополнительном коде).

3.1.4. Функції АЛУ. Призначення адресних входів АЛУ

рифметико-логическое устройство ( ЛУ) (англ. arithmetic and logic unit, ALU) — блок процессора, который под управлением устройства управления (УУ) служит для выполнения арифметических и логических преобразований (начиная от элементарных) над данными, представляемыми в виде машинных слов, называемыми в этом случае операндами.

Арифметико-логическое устройство в зависимости от выполнения функций можно разделить на две части:

1.микропрограммное устройство (устройство управления), задающее последовательность микрокоманд (команд);

2.операционное устройство (АЛУ), в котором реализуется заданная

последовательность микрокоманд (команд).

Сигналы на адресных входах определяют, какой конкретно информационный канал подключен к выходу.

Тема 3.2: Система команд мікропроцесору i8080. Організація пам’яті та портів вводу/виводу.

3.2.1. Схема прямої адресації ввод/вивід в порт.

Прямая адресация регистра ввода;вывода. Данный вид адресации используют для выполнения обмена между регистром ввода;вывода, расположенным в адресном пространстве ввода;вывода, и одним из регистров общего назначения по командам АХ и

AL.

 

 

 

 

In(out)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Data dv

 

 

 

 

 

port

 

ax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2.2. Непрямая адресація ввод/взвод

Используется в разе необходимости указания адреса порта при вводе/ выводе даных