Архитектура компьютера

Введение
Теоретическая часть
    1 Архитектура компьютера
     
Лабораторный практикум
  1 Создание программы на языке ассемблера
  2 Применение функций DOS и BIOS
  3 Линейные алгоритмы
  4 Десятичная арифметика
  5 Команды передачи управления
  6 Циклы с условием
  7 Циклы со счетчиком
  8 Работа с массивами
  9 Цепочечные команды
     
Приложения
  1 Таблица кодов символов ASCII
  2 Функции DOS и BIOS
     
Гостевая книга

Теоретическая часть

Архитектура компьютера

Архитектура компьютера (АК) - абстрактное представление компьютера, которое отражает его схемотехническую, логическую и функциональную организацию. В понятие архитектуры компьютера входят:

  1. Структурная схема
  2. Организация и разрядность интерфейсов
  3. Набор и доступность регистров
  4. Организация памяти

1. Структурная схема


Рис 1

где МП - микропроцессор, АЛУ - арифметико-логическое устройство, УУ - устройство управления, ОЗУ - оперативное запоминающее устройство, ША - шина адреса, ШД - шина данных, ШУ - шина управления.

2. Организация и разрядность интерфейсов

При рассмотрении общей схемы ЭВМ под интерфейсами подразумевают шины обмена информацией (на схеме ША - шина адреса, ШД - шина данных, ШУ - шина управления). Посредством этих шин организован интерфейс (связь, взаимодействие) между МП и другими частями компьютера.

Для ПК на базе процессора i8086 эти шины имеют следующие разрядности:

шина адреса - 20;

шина данных - 8;

шина управления - 1.

3. Набор и доступность регистров

Регистр — 16ти-разрядная ячейка памяти, расположенная непосредственно в МП. Доступ к таким ячейкам осуществляется намного быстрее, чем к ячейкам памяти в ОЗУ. МП содержит большое количество регистров, и каждый из них имеет собственное название. Не все регистры доступны для практического использования. Ниже приведена классификация по функциональному назначению доступных регистров.

а). Регистры общего назначения

ax 
ah
al
si 
 
 
bx 
bh
bl
di 
 
 
cx 
ch
cl
sp 
 
 
dx 
dh
dl
bp 
 
 
Рис 2

Особенностью данной группы регистров является то, что они могут использоваться при различных арифметико-логических операциях (регистры арифметико-логического устройства).

Для регистров ax, bx, cx, dx можно получить доступ отдельно к старшему или младшему байту слова. Старший байт обозначается h (high), младший - l (low). Так регистр ax может использоваться и целиком, и по частям: ah - старший байт регистра ax, al - младший байт регистра ax (см. Рис 2).

Регистры si и di называют индексными регистрами, их можно использовать по своему усмотрению, но официально они предназначены для поддержки цепочечных команд.

Регистры sp и bp лучше не использовать без особой необходимости на начальном этапе изучения ассемблера. Данные регистры используются при работе со специальной областью памяти - стеком, неправильное их использование может внести в программу труднообнаруживаемые ошибки.

б). Сегментные регистры

Название "сегментные" данные регистры получили от применяемого в МП Intel способа адресации памяти. Этот способ состоит в поблочном использовании памяти, блоки называются сегментами. Каждая программа может одновременно использовать 4 сегмента (блока) памяти:

  • сегмент с кодом программы;
  • сегмент с данными;
  • сегмент стека;
  • дополнительный сегмент данных.

Для задания местоположения этих сегментов в памяти (для адресации) и применяются сегментные регистры. В данную группу входят 4 регистра:

  • cs (code segment) - сегмент кода;
  • ds (data degment) - сегмент данных;
  • ss (stack segment) - сегмент стека;
  • es (extension data segment) - дополнительный сегмент данных.

в). Регистры состояния и управления

Регистры данной группы предоставляют доступ к некоторой дополнительной информации о состоянии МП и о результате выполнения последней арифметико-логической операции.

Регистр указатель (ip)

В регистре ip содержится адрес команды, которая будет выполняться следующей. Фактически этот адрес содержится в паре регистров cs:ip. cs содержит адрес сегмента кода, а ip - смещение (положение относительно начала сегмента) нужной команды (см организация памяти).

Флаговый регистр (flags)

Флаговый регистр особо выделяется среди всех остальных. У этого регистра каждый бит (для флагового регистра биты именуется флагами) имеет определённое назначение и собственное название. Флаги отражают состояние микропроцессора и особенности результата выполнения последней арифметической или логической операции. Флаг либо установлен, либо сброшен (0, 1).

x
0
x
x
OF
DF
IF
TF
SF
ZF
0
AF
0
PF
1
CF

Флаги состояния:

  • CF (Carry) - флаг переноса. Используется арифметическими командами и командами сдвигов;
  • PF (Parity) - флаг контроля четности. Содержит 1, если сумма единиц в восьми младших разрядах регистра является четным числом, или 0, если она нечетна;
  • AF (Auxiliary) - дополнительный флаг переноса. Содержит значение переноса из 3-го бита восьмибитовых данных;
  • ZF (Zero) - флаг ноля. Содержит 1, если результат арифметической операции или операции сравнения нулевой, в противном случае содержит 0;
  • SF (Sign) - знаковый флаг. Содержит знак результата (старший бит) после выполнения арифметических операций (0 = '+',1= '-');
  • OF (Overflow) - флаг переполнения. Указывает, что в результате выполнения арифметической команды возникло переполнение старшего разряда результата;

Флаг управления:

  • DF (Direction) - флаг направления. Определяет, в каком направлении будут обрабатываться данные цепочечными командами - от младших адресов к старшим или наоборот;

Системные флаги:

  • IF (Interrupt) - флаг разрешения прерываний. Указывает на возможность внешних прерываний;
  • TF (Trap) - флаг пошагового выполнения. Устанавливает выполнение команд процессора в пошаговом режиме (для отладки программ).

 

4. Организация памяти

Физическая память, к которой МП имеет доступ, называется оперативной памятью (ОП) или оперативным запоминающим устройством (ОЗУ). Память можно условно представить в виде простой последовательности пронумерованных байт. Порядковый номер байта называется его физическим адресом.

Доступ а любому байту ОЗУ осуществляется по шине адреса, которая, как мы уже говорили, является 20-разрядной (для i8086). Разрядность шины ограничивает объём доступной памяти, так 20 разрядов шины позволяют записать адреса от 0 до 220-1 (1 Мбайт). Все адреса удобнее записывать в шестнадцатеричном виде (диапазон физических адресов от 00000h до FFFFFh).

Для записи любого физического адреса необходимо 20 разрядов. Но все регистры МП 16-разрядные. Для получения 20-разрядного адреса используется следующий механизм:

  1. Всю физическую память условно можно разбить на параграфы (1 параграф = 16 байт);
  2. Память будем выделять программам только небольшими блоками, данные блоки будем в дальнейшем называть сегментами памяти или просто сегментами.
  3. Программа может состоять из любого количества сегментов;
  4. Каждый сегмент может начинаться только с начала параграфа, т.е. адресом сегмента будет номер его первого параграфа (такой адрес уже 16-разрядный);


Рис 3

Такой механизм называется сегментацией, он поддерживается на аппаратном уровне (мы не можем его заменить или изменить). В МП имеются специальные сегментные регистры, которые содержат адреса сегментов в памяти.

Так как под адресом сегмента понимается номер параграфа, с которого он начинается, то для получения физического адреса начала сегмента необходимо умножить его на 16. Например, сегмент 0032h имеет физический адрес 0032h x 10h = 00320h.

Для определения адреса конкретной ячейки памяти недостаточно знать адрес сегмента, в котором она находится. Необходимо знать позицию этой ячейки относительно начала сегмента. Этот относительный адрес называют эффективным адресом или смещением. Поскольку максимальный размер сегмента ограничен 64 килобайтами, то смещение будет записываться 16-разрядным значением.

Таким образом, от 20-разрядного физического адреса мы перешли к адресу, состоящему из двух 16-разрядных частей: адрес сегмента и смещение. Такие составные адреса называются логическими и записываются так:

96AF
:
E305
сегмент
смещение

Механизм сегментации служит не только для перехода от 20-разрядных физических адресов к 16-разрядным логическим, он необходим для защиты программ от взаимного влияния.

 

© Истомин А.С. ЗабГГПУ
Хостинг от uCoz