Архитектура микропроцессорной системы. Состав машинных команд и основы программирования микропроцессорной системы на ассемблере. Булатов В.Н. - 16 стр.

UptoLike

Составители: 

а DI — адрес приемника данных (dst). При этом после каждой пересылки
одного операнда их содержимое автоматически увеличивается (или
уменьшается это как задано направление), подготавливая адреса
транспортировки очередного операнда.
Другая группа регистров называется сегментной (RS) и тоже участвует в
формировании физического адреса. Обычно в других мощных
микропроцессорах, где адресное пространство от 1 Мбайт до 4 Гбайт, роль
сегментного регистра выполняет регистр с одним именем. И это, в общем-то,
достаточно. Но фирма Intel — не как все, и в данном микропроцессоре их
четыре. Главное назначение сегментных регистров расширение адресного
пространства. Сегментные регистры те же 16-разрядные регистры, как и
адресные. Но их содержимое гораздо «тяжелее»: A19...A4.
Физический адрес ОЗУ/ПЗУ автоматически вычисляется в результате
следующего сложения:
RS: A
19
A
18
A
17
A
16
A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8
A
7
A
6
A
5
A
4
0
0
0
0
+
ЕА:
0 0 0 0
A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
———————————————————————————————————————
Add:A
19
A
18
A
17
A
16
A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
Для удобства, чтобы не писать длинные двоичные числа, далее будут
использоваться их шестнадцатеричные свертки. Так, например, двоичное число
1110 1111 0010 1100 есть EF2C в шестнадцатеричном коде (Н-коде).
(Рекомендуется иметь постоянно под рукой таблицу перевода десятичных
чисел от «0» до «15» в двоичную и шестнадцатеричную формы).
Следовательно, если в сегментном регистре находится число 1CDO, а
ЕА= F156, то физический адрес на шине адреса системной магистрали будет:
1CDO
+ F156
—————
2BE56
На рисунке 3 видно, что выходы сегментных регистров тоже
мультиплексируются. Почему их четыре и когда они используются? Для начала
необходимо обратить внимание, что последняя буква у них S, что значит
сегментный. Теперь разберемся с первыми буквами.
C – command —командный. CS используется при формировании только
выборок команд из ЗУ совместно с IP (указывают: CS:IP);
S — stack — стековый. SS используется только при формировании адреса
стековой памяти (стека) совместно с SP (указывают: SS:SP) или BP (SS:BP);
D – data — данные. DS по умолчанию используется в пересылках данных
между микропроцессором и ЗУ совместно с адресом ЕА этих данных,
указанных прямо или косвенно в команде;
ES — резервный сегментный регистр. На этом пока можно закончить
знакомство с сегментными регистрами.
16
а DI — адрес приемника данных (dst). При этом после каждой пересылки
одного операнда их содержимое автоматически увеличивается (или
уменьшается — это как задано направление), подготавливая адреса
транспортировки очередного операнда.
      Другая группа регистров называется сегментной (RS) и тоже участвует в
формировании     физического    адреса.   Обычно     в   других    мощных
микропроцессорах, где адресное пространство от 1 Мбайт до 4 Гбайт, роль
сегментного регистра выполняет регистр с одним именем. И это, в общем-то,
достаточно. Но фирма Intel — не как все, и в данном микропроцессоре их
четыре. Главное назначение сегментных регистров — расширение адресного
пространства. Сегментные регистры — те же 16-разрядные регистры, как и
адресные. Но их содержимое гораздо «тяжелее»: A19...A4.
      Физический адрес ОЗУ/ПЗУ автоматически вычисляется в результате
следующего сложения:
 RS: A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A40 0 0 0
     +
 ЕА: 0 0 0 0 A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
       ———————————————————————————————————————
 Add:A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

      Для удобства, чтобы не писать длинные двоичные числа, далее будут
использоваться их шестнадцатеричные свертки. Так, например, двоичное число
1110 1111 0010 1100 есть EF2C в шестнадцатеричном коде (Н-коде).
(Рекомендуется иметь постоянно под рукой таблицу перевода десятичных
чисел от «0» до «15» в двоичную и шестнадцатеричную формы).
      Следовательно, если в сегментном регистре находится число 1CDO, а
ЕА= F156, то физический адрес на шине адреса системной магистрали будет:
       1CDO
      + F156
       —————
       2BE56
      На рисунке 3 видно, что выходы сегментных регистров тоже
мультиплексируются. Почему их четыре и когда они используются? Для начала
необходимо обратить внимание, что последняя буква у них S, что значит —
сегментный. Теперь разберемся с первыми буквами.
      C – command —командный. CS используется при формировании только
выборок команд из ЗУ совместно с IP (указывают: CS:IP);
      S — stack — стековый. SS используется только при формировании адреса
стековой памяти (стека) совместно с SP (указывают: SS:SP) или BP (SS:BP);
      D – data — данные. DS по умолчанию используется в пересылках данных
между микропроцессором и ЗУ совместно с адресом ЕА этих данных,
указанных прямо или косвенно в команде;
      ES — резервный сегментный регистр. На этом пока можно закончить
знакомство с сегментными регистрами.


16