Главная -> Книги

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) ( 25 ) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) (25)

цию преобразования 16-битного виртуального адреса, определяемого командой, в 18-битный физический адрес, выдаваемый на шины адреса. Это позволяет увеличить объем программной памяти до 124К слов.

Упрощенная структура базового процессора ЭВМ СМ-3 (4) приведена на рис. 3-20. Процессор подключается к общей шине как подсистема, управляет распределением ее между памятью и периферийными устройствами, выполняет логические, арифметические и другие операции. Процессор содержит набор быстродействующих РОН, которые могут быть использованы как аккумуляторы, указатели стека, индексные регистры и выполнять другие функции.

Функцию программного счетчика выполняет регистр R7, который содержит адрес следующей команды и используется только для этой цели, а не как аккумулятор для арифметических операций. Регистр R6 используется в качестве указателя стека, который в СМ-3 (4) заполняется, начиная со старшего адреса, зарезервированного под стек. Стек используется автоматически при вызове подпрограмм, обработке прерываний. Когда процессор прерывается, слово состояния процессора из регистра слова состояния (РСС) и содержимое ПС запоминаются автоматически в стеке. Новое слово состояния программы загружается из области памяти, которая зарезервирована для обработки прерываний. Назначение отдельных полей 16-битного слова состояния процессора приведено на рис. 3-21. В разрядах О-3 формируются признаки результатов С, V, Z, N. Признак «слежения» Т может быть установлен или сброшен программно. Если данный бит установлен, будет иметь место внутреннее прерывание (через ячейку памяти с адресом 14) после завершения каждой команды и будет загружаться новое слово состояния. Признак Т является особенно полезным при отладке программ, так как позволяет эффективно устанавливать в программе контрольные точки.

Биты 5-7 позволяют назначать процессору любой из восьми приоритетов, причем уровень 7 запрещает прерывать текущую программу периферийным устройством, только приоритет внепроцессорного запроса выше любого приоритета процессора.

Биты 12-15 используются только в СМ-4. Биты 14 и 15 определяют режим работы процессора: системный или режим пользователя, а биты 12, 13 - предыдущий режим.

Форматы команд и режимы адресации. Основные форматы базовой системы команд процессоров СМ-3 и СМ-4 приведены на рис. 3-22. Поля источника и приемника оп-



а) 15 12 11

6 5 0

г) 15

8 65

Источник

Приемник

Источник (приемник)

5)15

65 0

9) 15

3 2 0

Источник (приемник)

В) 15

е)15

Смещение

Рис. 3-22. Основные форматы команд СМ-3 и СМ-4: а - двухоперанд-ная; б-однооперандная; в - разветвление; г--вызов подпрограмм} д - возврат из подпрограммы; в -безоперандная

ределяют операнды, используемые режимы адресации; команды с полями источника и приемника могут определять режим адресации без ограничений. Кроме того, почти каждая команда, оперирующая словами, может также оперировать байтами, что определяется старшим битом в команде, который должен быть установлен в 1 для указания команды обработки байта. Как видно из рис. 3-22, все базовые команды - длиной в одно слово. При использовании некоторых режимов адресации к команде добавляется одно слово, поэтому команды с полями «источник» и «приемник» могут содержать до двух слов адресной информации, а длина команды может варьироваться от одного до трех слов.

Базовые режимы адресации. Однооперандные и двухопе-рандные команды могут содержать операнды в памяти; операнд в команде определяется 6-битным полем, 3 бита которого указывают номер РОН, а другие 3 - один из 8 базовых режимов адресации:

1. Регистровая адресация. При данном режиме адресации (код РА = 000) РОН может быть использован как приемник и источник информации. Например, команда ADD R2, R4 (код ее 060204) обеспечивает сложение содержимого R2 и R4 с записью результата в R4:

(R2) + (R4)->(R4).

2. Косвенная регистровая адресация (код РА = 001). Содержимое регистра в этом случае является адресом

ячейки памяти. Команда CLR(I>R3 (005015) обеспечивает сброс ячейки памяти, адрес которой хранится в регистре R3.



3. Автоинкрементная адресация. Данный режим адресации (код РА = 010) автоматически увеличивает содержимое регистра, выполняющего адресацию памяти, на 1 (при выборке байта) или на 2 (при выборке слова). Это обеспечивает последовательную адресацию ячеек памяти, что требуется при обработке массивов данных, организации стека и в других случаях. Например, при выполнении команды ADD (Rl)-f, R2 (062104) содержимое Rl используется для адресации операнда, который прибавляется к содержимому R2. После выборки операнда (R1) увеличивается на 2.

4. Косвенная автоинкрементная адресация (ПА = 011). Содержимое указанного в команде регистра используется как адрес адреса операнда. Например, команда INC@(R2)+(005232) обеспечивает увеличение на 1 операнда, адрес которого указан в ячейке памяти, адресуемой регистром R2. С выполнением команды (R2) вырастет на 2.

5. Автодекрементная адресация (код РА==100). При использовании данного режима адресации, например при выполнении команды DEC -(Rl) (005241), содержимое Rl вначале уменьщается на 2, а затем используется как адрес для выборки операнда, который уменьщается на 1.

6. Косвенная автодекрементная адресация (ПА=101). Содержимое регистра уменьщается на 2, а затем используется как адрес адреса операнда. Например, команда СОМ

©-(ro) (005150) обеспечивает вычитание 2 из r0, и затем содержимое r0 становится адресом адреса числа, которое инвертируется под действием данной команды.

7. Индексная адресация (ПА=110). При данном способе адресации содержимое указанного в команде регистра суммируется с индексным словом, которое следует за первым словом команды. При этом содержимое регистра и индексное слово не изменяются. Например, команда CLR 300(R4) выполняет очистку содержимого ячейки, адрес которой определяется путем сложения индексного слова 300 и содержимого R4.

8. Косвенная индексная адресация (ПА=111). Для этого режима адресации сформированный код используется как адрес адреса операнда. Например, команда

ADD©1000(R2), Rl выполняет сложение операнда из R1

с операндом, адрес адреса которого формируется при сложении индекса 1000 и содержимого R2; результат запоминается в r1.



(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) ( 25 ) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124)