Similar presentations:
Структура модели процессора. Регистры. Ассемблер. АЛУ. Микропрограммы. Цикл команды
1. Модель процессора
2. План лекции
Структура модели процессораРегистры
Ассемблер
АЛУ
Микропрограммы
Цикл команды
Примеры
3. Структура модели процессора
4. Структура
Регистрадреса
Счетчик
команд
Регистр
данных
Регистр
команд
Оперативная
память
А
Таблица
адресов
микропрограмм
Память
микропрограмм
В
АЛУ
Флаги
Регистры
общего
назначения
AX
BX
CX
DX
Сигналы
управления
5. Структура
Процессор включает:регистры (микропроцессорная память)
УУ (устройство управления)
память
микропрограмм
таблица адресов микропрограмм
АЛУ (арифметико-логическое устройство)
6. Регистры
7. Регистры
Счетчик командРегистр команд
Регистр адреса
Регистр данных
Регистры общего назначения:
AX,
BX, CX, DX
8. Регистры
Все регистры 8-разрядныеРегистры делятся на группы:
управляющие
счетчик команд и регистр команд
регистры
работы с оперативной памятью
регистр адреса и регистр данных
регистры
регистры
общего назначения
AX, BX, CX, DX
9. Регистры
Счетчик команд – регистр, в которомхранится адрес выполняемой команды
Счетчик – потому что есть специальный
сигнал – увеличения значения
регистра на 1
10. Регистры
Регистр команд – регистр, в которомхранится код операции выполняемой
команды
11. Регистры
Машинная команда состоит из двухчастей – код операции и операнды
Код операции говорит о том, что нужно
сделать с операндами
Операндами могут быть:
регистры
константы
адреса
ячеек памяти (переменные)
12. Примеры
Кодоперации
Операнд
01
0A
Загрузить в регистр АХ
число 10
MOV AX, 10
Загрузить в регистр АХ
регистр ВХ
MOV AX, BX
Загрузить в регистр АХ
содержимое ячейки
памяти по адресу D5
MOV AX, [D5]
Код
операции
02
Код
операции
Операнд
25
D5
13. Обозначения на Ассемблере
Загрузка: MOV (move)Сложение: ADD (addition)
Сложение с переносом: ADC
Вычитание: SUB (subtract)
Вычитание с переносом: SBB
14. Обозначения на Ассемблере
Сдвиг влево: SHL (shift left)Сдвиг вправо: SHR (shift right)
Переход: JMP (jump – прыжок)
Вычитание без изменения операндов:
CMP (compare – сравнить)
используется
в командах условного перехода
15. Примеры машинных команд, записанных на Ассемблере
MOV AX, BXADD AX, DX
ADC AX, BX
SUB CX, BX
SBB DX, AX
SHL AX
SHR BX
AX := BX
AX := AX + DX
AX := AX + BX + CF
CX := CX – BX
DX := DX – AX – CF
сдвиг AX влево на 1 бит
сдвиг BX вправо на 1 бит
16. Обозначения на Ассемблере
Константы обозначаются числами:ADD
AX, 5
AX := AX + 5
Содержимое ячейки памяти
указывается в квадратных скобках:
BX, [89]
вычесть из ВХ
содержимое ячейки памяти по адресу 8916
MOV CX, [AX]
загрузить в СХ
содержимое ячейки памяти, адрес которой
хранится в АХ
SUB
17. Регистры
Регистр адреса (ADDR) содержитадрес ячейки оперативной памяти,
с которой сейчас будем работать
(читать или писать)
18. Регистры
Регистр данных (DATA):в случае записи в ОЗУ содержит то,
что будем записывать
в случае чтения из ОЗУ туда придут
данные из ячейки памяти
19. Регистры
Регистры общего назначения(AX, BX, CX, DX) нужны для временного
хранения данных, с которыми сейчас
работаем
20. Арифметико-логическое устройство
21. АЛУ
Все данные проходят в процессоре черезарифметико-логическое устройство:
пересылка данных
арифметические операции
логические операции
22.
Y15Y16
Y17
Y18
Операция
0
0
0
0
Нет операции
0
0
0
1
A+B
0
0
1
0
A + B + CF
0
0
1
1
A–B
0
1
0
0
A – B – CF
0
1
0
1
A and B
0
1
1
0
A or B
0
1
1
1
A xor B
1
0
0
0
not A
1
0
0
1
not B
1
0
1
0
shl A
1
0
1
1
shr A
1
1
0
0
A
1
1
0
1
B
1
1
1
0
A+1
1
1
1
1
A–1
23. АЛУ
Вход А и выход:Y7
Y8
Y9
Y10
Вход
1
0
x
x
DATA
0
1
x
x
ADDR
0
0
0
0
AX
0
0
0
1
BX
0
0
1
0
CX
0
0
1
1
DX
24. АЛУ
Вход В:Y11
Y12
Y13
Y14
Вход
1
0
x
x
DATA
0
1
x
x
ADDR
0
0
0
0
AX
0
0
0
1
BX
0
0
1
0
CX
0
0
1
1
DX
25. АЛУ
Результат выполненной операциивлияет на флаги
Флаг – это бит в специальном регистре
процессора, отвечающего за результат
последней выполненной в АЛУ операции
26. Флаги
CF (Carry Flag) – флаг переносаOF (Overflow Flag) – флаг переполнения
ZF (Zero Flag) – флаг нуля
SF (Signum Flag) – флаг знака
PF (Parity Flag) – флаг четности
27. Флаги
CF = 1, если получился бит переносаOF = 1, если есть переполнение
ZF = 1, если результат равен нулю
SF = 1, если знаковый бит равен 1
PF = 1, если количество единиц четно
28. Флаги
Флаги учитываются при выполнениикоманд условных переходов:
JZ N – переход на адрес N, если ZF = 1
JNZ N – переход на адрес N, если ZF = 0
JS N – переход на адрес N, если SF = 1
JNS N – переход на адрес N, если SF = 0
29. Флаги
Пример:Если AX = BX перейти на адрес N
CMP AX, BX
AX – BX, флаги
JZ N
Проверка флага ZF
30. Устройство управления
31. Микропрограммы
Все компоненты процессора работаютв соответствии с сигналами управления
(Y1-Y30)
Набор конкретных значений всех
сигналов Y1-Y30 называется
микрокомандой
Одна микрокоманда определяет
поведение процессора в одном такте
32. Микропрограммы
Машинная команда обычнореализуется несколькими
микрокомандами
Для каждой машинной команды нужна
своя последовательность микрокоманд
Такая последовательность называется
микропрограммой
33. Микропрограммы
Машинныекоманды
Оперативная
память
01
MOV AX, 10
0A
MOV BX, AX
ADD AX, BX
02
05
Таблица адресов
микропрограмм
Память микропрограмм
Адрес
Микрокоманда
01
Y1-Y30
02
Y1-Y30
...
...
10
Y1-Y30
Код операции
Адрес в памяти
микропрограмм
01
10
02
20
03
30
...
...
04
40
20
Y1-Y30
05
50
...
...
50
Y1-Y30
...
...
34. Микропрограммы
Кроме того, нужна общаяпоследовательность микрокоманд,
отвечающая за постоянное считывание
машинных команд из памяти
Совокупность действий процессора,
происходящих при чтении и исполнении
машинной команды, называется циклом
команды
35. Цикл команды
Цикл команды включает:Выборка команды
Декодирование команды
Выполнение команды
Запись результата
36. Цикл команды
1. Выборка команды – это чтениеиз ОЗУ очередной машинной команды
Как процессор узнает, откуда брать
следующую команду?
37. Цикл команды
1. Выборка командыАдрес команды находится в счетчике
команд
Первый байт команды (код операции)
считывается в регистр команды
38. Цикл команды
2. Декодирование команды– определение по коду операции
адреса в памяти микропрограмм,
где располагается соответствующая
коду операции микропрограмма
39. Цикл команды
3. Выполнение команды –осуществление необходимых для
данной машинной команды действий:
настройка АЛУ на нужную операцию
подготовка входов А и В
выполнение операции
40. Цикл команды
4. Запись результата – пересылкарезультата операции в нужный регистр
или ячейку памяти
41. Цикл команды
ВыборкаМашинные
команды
Оперативная
память
01
MOV AX, 10
0A
MOV BX, AX
02
ADD AX, BX
05
Счетчик
команд
Таблица адресов
микропрограмм
Декодирование
Регистр
команд
Запись
результата
Память микропрограмм
Адрес
Микрокоманда
01
Y1-Y30
02
Y1-Y30
...
...
Код операции
Адрес в памяти
микропрограмм
01
10
02
20
10
Y1-Y30
03
30
...
...
04
40
20
Y1-Y30
05
50
...
...
50
Y1-Y30
...
...
Выполнение
АЛУ
Регистры
Сигналы управления
(микрокоманды)
42. Цикл команды
В цикле команды необходимо такжепредусмотреть формирование адреса
следующей команды
Как это делать?
43. Цикл команды
Обычно это делается путем увеличениясчетчика команд на 1
В том случае, если выполняются
команды перехода, в счетчик команд
из памяти заносится адрес перехода
44. Микропрограммы
Сигналы управления делятся на группы:Y1-Y6 – управляющие регистры
и регистры работы с ОЗУ
Y7-Y18 – АЛУ
Y19-Y30 – переход на следующую
команду в памяти микропрограмм
45. Микропрограммы
Y19-Y22 определяют условие переходаY23-Y30 кодируют адрес безусловного
перехода
46. Микропрограммы
Y19 Y20 Y21 Y22Переход
0
0
0
0
Переход по следующему адресу
0
0
0
1
Флаг CF сброшен
0
0
1
0
Флаг OF сброшен
0
0
1
1
Флаг ZF сброшен
0
1
0
0
Флаг SF сброшен
0
1
0
1
Флаг PF сброшен
0
1
1
0
Переход по следующему адресу
0
1
1
1
Безусловный переход по адресу
1
0
0
0
СТОП
1
0
0
1
Флаг CF установлен
1
0
1
0
Флаг OF установлен
1
0
1
1
Флаг ZF установлен
1
1
0
0
Флаг SF установлен
1
1
0
1
Флаг PF установлен
1
1
1
0
Переход по следующему адресу
1
1
1
1
Переход по адресу из таблицы адресов
47. Пример 1
Написать микропрограмму реализациимашинной команды
MOV AX, const
48. Пример 2
Написать микропрограмму реализациимашинной команды
MOV BX, AX