- •Тема 1.1: Класифікація мікропроцесорів. Архітектура процесорів Intel 8086.
- •1.4. Структура вбудованого мікроконтролеру
- •1.5. Системна шина
- •Тема 2.2: Арифметичні операції над числами. Логічні операції над числами та строками. Умовні та безумовні переходи.
- •2.2.1 Додавання цілих чисел. Синтаксис команд
- •2.2.2 Віднімання цілих чисел. Синтаксис команд
- •2.2.3 Множення цілих чисел. Синтаксис команд.
- •2.2.4 Ділення цілих чисел. Синтаксис команд
- •2.2.5 Арифметичний зсув вліво і вправо. Синтаксис команд
- •2.2.6 Безумовний перехід та порівняння. Синтаксис команд.
- •2.3.3. Команди організації циклів. Синтаксис команд
- •3.1.2. Сегментні регістри. Состав шинного інтерфейсу.
- •3.1.3. Індексні регістри. Регістр флагів.
- •3.1.4. Функції алу. Призначення адресних входів алу
- •Тема 3.2: Система команд мікропроцесору i8080. Організація пам’яті та портів вводу/виводу.
- •Тема 5.1: Система команд i8086. Система переривів. Адресація пам’яті. Директиви передачі керування.
- •5.1.2. Команди перериву за переповненням. Синтаксис команд.
- •5.1.3. Повернення з переривів та підпрограм.
- •5.1.4. Сегментна організація пам’яті.
- •5.1.5. Фізична адреса байту в пам’яті.
- •5.1.6. Формування логічного адресу.
- •Тема 5.2: Сопроцесор і арифметичне розширення процесору. Синхронізація програми та керування таймером.
- •5.2.1. Функції та призначення сопроцесору.
- •5.2.4. Синхронізація сигналів таймеру.
- •Тема 5.3: Програмування вводу/виводу даних на зовнішні пристрої. Обмін даними в локальних мережах.
- •5.3.1. Функції інтерфейсу вводу/виводу.
- •5.3.2. Керування обміном даними. Програмний обмін.
- •5.3.3. Керування обміном даними. Обмін за переривом.
- •Тема 6.1: Архітектура мікроконтролеру i8086. Організація пам’яті і регістрів. Прямий доступ до пам’яті.
- •6.1.1. Організація пам’яті. Адресний простір.
- •6.1.2. Структура процесору i8086. Виконавчий модуль.
- •6.1.3. Структура процесору i8086. Шиний інтерфейс
- •6.1.4. Структура процесору i8086. Керування і таймінг.
- •6.1.5. Контролер динамічної пам'яті. Схема модуля.
- •Тема 6.2: Організація портів вводу/виводу. Інтерфейси зовнішніх пристроїв для взаємодії з технологічним обладнанням.
- •Тема 6.3: Тактовий генератор. Таймери. Лічильники. Внутрішня та зовнішня пам’ять. Шини адресу та даних.
- •6.3.1. Мікросхема тактового генератору.
- •6.3.2. Структурна схема програмованого таймеру.
- •6.3.3. Режими роботи програмованого таймеру.
- •6.3.4. Нарощування об’єму пам’яті.
- •Тема 6.4: Система переривів. Контролер переривів. Організація механізму переривів. Перериви таймеру.
- •6.4.1. Контролер переривів. Джерело переривів.
- •6.4.2. Запроси переривів. Типи векторів переривів.
- •6.4.3. Адреси функцій переривів. Приклад визову перериву.
- •Тема 7.1: Засоби організації обміну із зовнішніми приладами. Схема виводів. Програмовані виводи.
- •7.1.1. Схема виводів мікропроцесору i8086.
- •7.1.2. Адресація 8-бітного пристрою.
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
BX
AX
X
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