
- •Лекции по предмету:
- •Системы счисления
- •Перевод целого числа
- •Перевод дробной части числа
- •Перевод числа из 8-ой и 16-ой сс в 2-ую сс
- •Арифметические операции в 2-ой сс
- •Представление чисел в эвм
- •Представление чисел с фиксированной точкой
- •Прямой код
- •Обратный код
- •Дополнительный код:
- •Правило сложения в дополнительном коде:
- •Представление чисел с плавающей точкой.
- •Понятие об архитектуре эвм
- •Структура эвм:
- •Устройство управления
- •Арифметико – логическое устройство (алу)
- •Классификация памяти. Операции с памятью.
- •Устройства ввода/вывода
- •Программная модель микропроцессора Intel 80/86
- •Адресация памяти
- •Адресация памяти в командах Ассемблера
- •Общий принцип косвенной адресации в процессоре 8086
- •Организация программы на языке ассемблер
Арифметико – логическое устройство (алу)
– выполняет обработку данных при помощи арифметических и логических операций. Основным узлом АЛУ является сумматор, выполняющий сложение двоичных кодов.
Реализация остальных арифметических операций сводится к комбинации операций сложения и других вспомогательных операций (сдвигов, преобразований и т.п.)
АЛУ содержит регистр аккумулятор для временного хранения данных. Когда команда требует выполнения арифметической или логической операции исходные данные из памяти помещаются в АЛУ. Далее в соответствии с указаниями устройства управления АЛУ выполняет требуемую операцию, результат который запоминается в аккумуляторе или в памяти. По результатам операции АЛУ устанавливает или сбрасывает флаги регистра состояний (PSW).
Классификация памяти. Операции с памятью.
Регистры
-вспомогательная память для временного хранения информации. Регистры распределены по всей системе. Они ест не только в УУ и АЛУ, но и в устройствах ввода/вывода. В устройствах ввода/вывода они называются портами. Регистры – это наиболее быстродействующая память, но их немного.
Основная память
- память, в которой хранится совокупность команд и обрабатываемых данных. Над информацией, хранимой в памяти можно выполнить две операции
Запись – занесение данных в ячейку, по заданному адресу.
Чтение – извлечение данных из ячейки по заданному адресу.
Обращение к памяти – запись или считывание информации. Время обращения называется временем доступа.
Внешняя память
-устройство для длительного хранения больших массивов информации.
Устройства ввода/вывода
Устройства ввода получает из вне данные и команды, которые затем поступают в основную память.
Устройства вывода получают вычисленный результат, располагающийся в основной памяти и передаёт их либо оператору, либо системе, либо во внешнюю память.
IO устройства называются периферийными устройствами. Точками их контакта с процессором являются порты ввода/вывода. Наличие уникальных адресов у портов позволяет подключать к процессору несколько IO устройств.
Шина
Отдельные блоки компьютера связаны между собой при помощи системной шины. Она представляет собой совокупность функциональных линий , по которым передаётся информация.
В
семействе персональных ЭВМ используется
архитектура с общей шиной.
Адресная шина – однонаправленная, в ней информация передаётся только от микропроцессора. Она служит для передачи адреса ячейки или порта в память или устройство ввода/вывода.
Шина данных – двунаправленная. Служит для передачи команд и данных.
Шина управления –состоит из линий, по которым передаются тактовые и синхронизирующие сигналы, а также информация о состоянии устройств.
Часть линий однонаправленная, а часть линий двунаправленная.
Производительность вычислительной системы зависит во многом от шины.
Программная модель микропроцессора Intel 80/86
Операционное устройство
– содержит АЛУ, УУ, регистр флагов, регистры общего назначения, предназначенные для хранения операндов и результатов команд, индексные регистры, используемые при адресации и систему управления и синхронизации, которая дешифрует команды и вырабатывает управляющие сигналы.
Шинный интерфейс
– обеспечивает управление выборкой из памяти команд и данных. Выполняет следующие функции:
Управление передачей данных в операционное устройство, в память и на устройство ввода/вывода.
Содержит 4 сегментных регистра, обеспечивающих адресацию памяти, объёмом до 1 мб.
Выполняет выборку из памяти и размещение в очереди команд, готовых для выполнения в операционном устройстве.
ОУ и ШИ – работают параллельно, причём ШИ опережает ОУ на 1 шаг.
ОУ сообщает ШИ о необходимости доступа в память или на устройство ввода/вывода, а также ОУ запрашивает команды из очереди команд. Пока ОУ занято выполнением первой команды из очереди, ШИ выбирает следующую команду из памяти. Эта выборка происходит параллельно выполнению команды, что повышает общую скорость работы процессора.
Регистры процессоров
Регистры разделяются на следующие группы:
Регистры общего назначения
Индексные регистры и указатели
Регистр флагов
Сегментные регистры
Указатель команд
Регистры общего назначения(РОН) предназначены для временного хранения данных и результатов операций над ними. Изначально в процессоре 80.86 присутствовало 4 16-разрядных регистра. Начиная с 80.386 процессора – четыре 32-разрядных регистра.
Каждый 16-разрядный регистр может использоваться как два однобайтовых регистра с префиксом h- старший байт, l – младший байт.
31 15 |
7 |
0 |
32бита |
16бит |
8бит |
|
|
|
EAX |
AX |
AH/AL |
|
|
|
EBX |
BX |
BH/BL |
|
|
|
ECX |
CX |
CH/CL |
|
|
|
EDX |
DX |
DH/DL |
AX- регистр аккумулятор. Обычно содержит операнд для выполнения некоторой операции. В него же записывается результат операции.
BX – базовый регистр. Оптимизирован для формирования базового адреса любых переменных памяти.
CX – регистр счётчик. Используется как счётчик при организации циклов и сдвигов.
DX – дополнительный регистр, обычно используется для накопления какого-то результата.
Индексных регистров и указателей – 4. В процессора 80.86 они имеют 16 разрядов. В 32-разрядных процессорах – 32. В 64-рязрядных – 64.
31 15 |
0 |
32 бита |
16 бит |
|
|
ESI |
SI |
|
|
EDI |
DI |
|
|
EBP |
BP |
|
|
ESP |
SP |
BP – указатель базы
SP – указатель стека
DI И SI – индексные регистры для формирования индексной адресации.
Регистры используются для формирования адреса обрабатываемых данных. Их же можно использовать для временного хранения данных. Для этих целей используются регистры SI, DI, BP.
SP – регистр стека. Он обычно неявно используется при вызове подпрограмм и прерываний, для записи в стек адреса возврата, а также и при возврате из подпрограммы прерываний для извлечения из стека адреса возврата.
В 64-разрядных процессорах используются 64-разрядные регистры.
И выглядит это следующим образом:
63 |
31 15 |
7 |
0 |
32бита |
16бит |
8бит |
RAX |
|
|
|
EAX |
AX |
AH/AL |
RBX |
|
|
|
EBX |
BX |
BH/BL |
RCX |
|
|
|
ECX |
CX |
CH/CL |
RDX |
|
|
|
EDX |
DX |
DH/DL |
63 |
31 15 |
0 |
32 бита |
16 бит |
RSI |
|
|
ESI |
SI |
RDI |
|
|
EDI |
DI |
RBP |
|
|
EBP |
BP |
RSP |
|
|
ESP |
SP |
В современных процессорах добавлены ещё регистры. Они называются R8-R15
63 |
32 15 |
7 |
0 |
32бита |
16бит |
8бит |
RAX |
|
|
|
EAX |
AX |
AH/AL |
RBX |
|
|
|
EBX |
BX |
BH/BL |
RCX |
|
|
|
ECX |
CX |
CH/CL |
RDX |
|
|
|
EDX |
DX |
DH/DL |
R8 |
|
|
|
R8D |
R8W |
R8B |
... |
|
|
|
… |
… |
… |
R15 |
|
|
|
R15D |
R15W |
R15B |
Регистр флагов – не имеет обозначения. В литературе его называют FLAGS – 16 бит. EFLAGS – 32 бита. RFLAGS – 64 бита. Этот регистр содержит биты условий сигнализирующих о состоянии процессора после последней выполненной операции.
Бит |
Имя флага |
Назначение |
0 |
CF |
Флаг переноса. Указывает, был ли перенос из старшего разряда или заём в старший разряд при выполнении арифметических операций |
1 |
PF |
Флаг чётности. Устанавливается один, если результат имеет чётное количество единиц и ноль - в противном случае. |
4 |
AF |
Флаг вспомогательного переноса. Используется в операциях над упакованными двоично-десятичными числами. |
6 |
ZF |
Флаг нуля. Устанавливается единица, если результат равен 0 и ноль – в противном случае.
|
7 |
SF |
Флаг знака. 1 – если результат отрицательный и 0 – если результат положительный. |
8 |
TF |
Флаг трассировки. Обеспечивает возможность работы процессора в пошаговом режиме. |
9 |
IF |
Флаг внешних прерываний. Если IF = 1, то прерывание разрешается. Если IF = 0, то прерывание запрещается. |
10 |
DF |
Флаг направления. Используется командами обработки строк. 1 – прямое направление ( от младших адресов к старших ). 0 – обратное направление. |
12 |
OF |
Флаг переполнения. Выход результата за пределы допустимых значений. |
Сегментные регистры – являются 16-разрядными и обеспечивают адресацию памяти в пределах 64 кб.
Адресуемый сегментным регистрам участок памяти является текущим сегментом. Сегмент всегда выровнен по границе параграфов. Т.е. его адрес кратен 16, поэтому содержимое сегментного регистра всегда предполагает наличие 4 нулей в младших разрядах, которые в регистре не хранятся.
Например: В регистре записано 011Fh – это означает, что адрес 011F0h.
Сегментный регистр |
Назначение |
CS |
Регистр сегмента кода. Содержит начальный адрес сегмента в котором находится исполняемый код команды. |
DS |
Регистр сегмента данных. Адрес, по которому расположены обрабатываем программной данные. |
SS |
Регистр сегмента стека. Используется для адресации стека. |
ES |
Дополнительный сегментный регистр. |
PS, GS |
-//- |
IP – указатель команд – содержит смещение команды, которая должна быт выполнена.
CSIP – адрес команды.
CS – в каком сегменте(адрес начала сегмента) . IP – смещение команды.