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

(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) (26)

в режимах адресации 3-6 содержимое регистра увеличивается или уменьшается на 1 или на 2. Следовательно, их можно использовать для прохождения вперед или назад по таблицам байтов или слов без дополнительных команд на модификацию указателей адреса. Автоинкрементные и автодекрементные режимы позволяют также использовать любой регистр как указатель стека со стандартными характеристиками: УС указывает на верхний элемент стека.

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

9. Непосредственная адресация (ПА=010). Данная адресация имеет место при использовании автоинкрементной адресации для R7. Например, рассмотрим выполнение команды АООф1:10, R0. Непосредственный операнд 10 размещается за первым словом команды и суммируется с содержимым R0. После выборки этой команды содержимое R7 увеличивается на 2, что обеспечивает выборку операнда 10 по адресу из регистра R7, и затем R7 увеличивается на 2 для выборки следующей команды.

10. Абсолютная адресация (ПА = 011). Этот режим ставляет собой фактически режим косвенной непосредственной адресации, когда слово, следующее за первым словом команды, является абсолютным адресом операнда.

Например, команда CLR@#1000 выполняет очистку ячейки памяти с адресом 1000.

11. Относительная адресация (ПА=110). При сложении индекса с содержимым R7 формируется исполнительный адрес по отношению к ПС R7. Этот режим адресации очень эффективен для построения позиционно независимых программ, допускающих перемещение в памяти. Когда команды программы перемещаются, операнд передвигается на то же самое число ячеек. Например, команда INC А (005267) обеспечивает увеличение содержимого ячейки А на 1. Адрес ячейки А определяется путем суммирования слова, следующего за командой, и содержимого ПС R7.

12. Относительная косвенная адресация (ПА==111). При использовании данного режима адресации, например при выполнении команды CLR®A , слово, следующее за первым словом команды, складывается с содержимым ПС RC для формирования косвенного адреса ячейки памяти.

Система команд. В мини-ЭВМ СМ-3 (4), микро-ЭВМ «Электроника-60» команды классифицированы на следую-



Двухоперандные команды СМ-3(4)

Таблица 3-3

Мнемоника

Операнд

Описание

MOV (В)

CMP (В) BIS (В)

BIC (В)

BIT"(B)

src, dst

src, dst

src, dst

src, dst

src, dst

src, dst

src, dst

red, dst

Операнд источника src пересылается но адресу операнда приемника dst

Операнд источника src прибавляется к операнду приемника dst, н результат записывается в dst

Из операнда приемника dst вычитается операнд источника src, и результат записывается по адресу dst

Сравнение операндов источника и приемника и установка признаков N, Z, V, С

Логическая операция ИЛИ содержимого src и dst, результат записывается по адресу dst

Сброс разрядов операнда src, соответствующих установленному разряду операнда dst

Установка признаков N, Z в соответствие с результатом логической операции И над содержимым src и dst, значение операндов не изменяется

Логическая операция «исключающее ИЛИ» над содержимым регистра и dst, результат записывается в dst

Примечание. Формат команд см. на рис. 3-22, а.

щие типы: двухоперандные, однооперандные, управления программой и дополнительные.

Двухоперандные и однооперандные команды приведены в табл. 3-3 и 3-4 соответственно. Почти все операции в соответствии с данными командами можно выполнять над словами и байтами, что указывается символом В, например MOV передает 16-битное слово, а MOVB - байт. В зависимости от режима адресации один или оба операнда для команды MOV(B), которая наиболее часто встречается в программах СМ ЭВМ, могут храниться в памяти. Поэтому MOV выполняет функции команд загрузки LD и запоминания ST, а также PUSH и POP с автодекрементным и автоинкрементным режимами адресации. Эта команда допускает также передачи типа память - память без промежуточного запоминания данных в регистрах.

Среди группы команд управления программой наиболее широко используются условные и безусловные переходы, составляющие 20 % команд. Если переход выполняется, то смещение умножается на 2 и результат прибавляется к со-



Таблица 3-4

Однооперандные команды СМ-3(4)

Мнемон ика

Операнд

Описание

CLR (В)

Сброс приемника

СОМ (В)

Инверсия приемника

INC (В)

Инкремент приемника на 1

DEC (В)

Декремент приемника на 1

NEG (В)

Содержимое приемника заменяется допол-

нительным кодом

TST (В)

Установка признаков N, V, Z, С по содер-

ASR (В)

жимому источника

Арифметический сдвиг приемника вправо

ASL (В)

Арифметический сдвиг приемника влево

ROR (В)

Циклический сдвиг приемника вправо с

ROL (В)

признаком С

Циклический сдвиг приемника влево с при-

знаком С

ADC (В)

К содержимому приемника прибавляется С

SBC (В)

Из содержимого приемника вычитается С

SWAB

Обмен байтами в слове приемника

Расширение знака N в слове источника

Примечание. Формат команд см. на рис. 3-22, б.

Команды управления программой СМ-3(4)

Таблица 3-5

Мнемоника

Операнд

Формат на рис. 3-22

Описание

rels

Безусловное разветвление

rels

Условное разветвление

Безусловный переход по исполни-

тельному адресу, указанному в ис-

точнике

reg, dst

Переход к подпрограмме

Возврат из подпрограммы

MARK

Восстановление указателя стека

reg, nn

Вычитание 1 и разветвление, если ре-

зультат не равен 0

code

Командное прерывание для системных

программ

TRAP

code

Командное прерывание

Командное прерывание для отладки

Возврат из прерывания

Командное прерывание для ввода-вы-

вода

Возврат из прерывания, запрещающий

прерывание по разряду слежения



(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)