Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
manual-l2only.pdf
Скачиваний:
42
Добавлен:
05.06.2015
Размер:
300 Кб
Скачать
☆

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

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

–Регистр сегмента стека ss, участвующий при формировании физических адресов памяти при обращении к стеку.

–Регистр дополнительного сегмента es. Может быть использован в некоторых случаях для осуществления доступа к данным.

4.Регистр признаков fl составлен из отдельных битов, отражающих текущее состояние процессора и результаты выполнения предыдущей операции. Более подробно он будет рассмотрен в разделе 2.2.5.

Назначение многих регистров станет ясно при рассмотрении способов адресации, применяемых в процессоре.

2.2.3. Формирование физических адресов

Процессор КМ1810ВМ86 использует 20-разрядный адрес для обращения к оперативной памяти, но использует только 16 разрядов данных. Следовательно физический адрес, формируемый процессором не умещается в слове процессора.

Возникает вопрос как записывать команды, которым требуется указание адреса ячейки в качестве операнда? Для этих целей в процессоре был применён подход с разделением памяти на так называемые сегменты.

Для формирования физического (полного) адреса производится суммирование 16-разрядного адреса с 16-разрядным номером сегмента, умноженным на 24 = 16. Умножение на 16 равносильно «сдвигу» числа на 4 двоичных разряда вправо . При сложении старшие разряды из номера сегмента формируют старшие разряды физического адреса (см. рисунок 2.2).

Действительно, возьмём число 153 (или 10011001 в двоичном представлении). Результат его умножения на 16 — 16 153 = 2448 (или 100110010000 в двоичном представлении). Напомним, что 16 записывается в двоичной системе счисления как 10000. Сравните: при десятичном умножении на 10000 числа 153 мы получим число 153000, сдвинутое на 4 десятичных разряда вправо).

31

 

 

 

 

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Адрес

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

 

 

 

 

Сегмент

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Физический адрес

Рис. 2.2: Принцип формирования 20-разрядного адреса из 16-ричных значений

Физический адрес EA формируется по схеме

EA = 16 segment + address:

Например, при обращении по адресу 3A43 (14915 в десятичной системе счисления) в сегменте 11AF (десятичное 4527) физический адрес будет равен EA = 16 4527 + 14915 = 87347 (15533 ).

В результате каждый сегмент представляет собой область памяти размером 65536 байт (64 КиБ), смещённую от начала адресного пространства на число байт, равное номеру сегмента, умноженному на 16.

Шаг между сегментами составляет всего 16 байт тогда как размер сегмента — 64 КиБ, поэтому сегменты неизбежно перекрываются (см. рисунок 2.3). Возьмём, к примеру, физический адрес 1334A . Он может быть представлен как

EA = 1334A =

10 FFF + 335A =

=

10 1000 + 334A = 10 1001 + 333A :

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

Физический адрес является 20-разрядным. В случае, если при вычислении физического адреса происходит арифметическое переполнение старшие разряды отбрасываются. При этом происходит «замыкание» адресного пространства: за байтом с физическим адресом FFFFF следует байт с физическим адресом 00000 .

32

Адреса

00000H

00010H

00020H

...

0FFF0H

10000H

10010H

10020H

...

1FFF0H

20000H

20010H

...

EFFE0H

EFFF0H

F0000H

F0010H

F0020H

...

FFFE0H

FFFF0H

100000H1)

Память

0 еСгмент

гментеС

 

1

...

0000FH

F001

0001FH

002F

0FFFFH

1000FH

1334AH

 

 

FFF егментС

 

 

 

 

 

1000 Сегмент

Сегмент

 

 

1FFEFH

 

 

 

 

1001

1FFFFH

 

 

 

 

 

 

 

 

 

 

 

 

 

2000FH

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

FFEE егментС

 

 

 

егментС

 

 

 

EFFF

 

FFFDFH

 

 

 

FFFEFH

 

 

 

 

 

FFFFFH

 

 

 

 

 

 

 

000F егментС

001F егментС

002F Сегмент

1)Не существующий, «гипотетический» адрес следующего после конца адресного пространства байта.

Рис. 2.3: Положение сегментов в памяти

33

2.2.4. Способы адресации

Большей части команд для выполнения требуется указание операндов (данных, над которыми в АЛУ совершается операция). Данные для совершения операции могут находиться

–в регистрах общего назначения;

–в оперативной памяти и

–непосредственно в прочитанной команде.

Способ обращения к операнду команды принято называть способом адресации. Всего выделяют шесть различных типов адресации:

1.Реги́стровая адресация(register addressing) предполагает, что операнд хранится в одном из регистров общего назначения. В коде команды указывается специальный код регистра, с которым производится работа.

2.Непосредственная адресация (immediate) предполагает, что операнд сохранён непосредственно в команде. Операнд размещается в оперативной памяти в следующим за кодом команды байте (байтах) и читается устройством выборки команд вместе с самой командой.

3.Прямая адресация памяти (direct memory addressing) достигается пу-

тём размещения адреса непосредственно в коде команды. Как и в случае с непосредственной адресацией адрес читается устройством выборки команд вместе с командой. Однако в качестве операнда используется не сам прочитанный операнд, а значение, сохранённое по указанному адресу в оперативной памяти.

4.Косвенная регистровая адресация (indirect register addressing) позво-

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

Применение косвенной адресации позволяет вычислять адреса, по которым будет произведено обращение, в процессе выполнения программы. Выделяют четыре разновидности косвенной регистровой адресации, характеризующиеся применяемыми способами вычисления адреса и тем, какие регистры в нём участвуют:

Применительно к процессорам КМ1810ВМ86 слово «регистровая» часто опускают т.к. в этом процессоре не предусмотрены другие способы косвенной адресации.

34

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]