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

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

7 О °>15 6 5

Address

Address

DMBBD

15 12 11 8. 0

Условие

Смещение

Рис. 2-7. Форматы команд передачи управления; а -команда безусловного перехода МП КР580; б - команда безусловного перехода процессоров СМ; в--команда разветвления процессоров СМ

ет адрес перехода, указанный в команде, в программный счетчик. На рис. 2-7, а, б приведены форматы команд безусловного перехода для МП КР580 и процессоров СМ. В МП КР580 адрес перехода передается из второго и третьего байтов команды JMP, а в процессорах СМ в поле D указывается адрес перехода с возможностью использования любого режима адресации кроме регистровой.

Команды условного перехода проверяют указанное в команде условие и загружают в программный счетчик адрес перехода, если условие истинно. Переходы, которые формируют целевой адрес с использованием относительной адресации к программному счетчику, называются командами разветвлений (branch). Команды разветвлений процессоров СМ содержат 8-битное смещение для образования целевого адреса, что уменьшает длину команды разветвления и обеспечивает позиционную независимость программы (рис. 2-7, в). Смещение представляет собой число в дополнительном коде и при выполнении разветвлений добавляется в программный счетчик. Если поле смещения /п-битное, то переход возможен в диапазоне адресов: от 2m-! l до 2m-J.

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

Для вызова подпрограмм используется команда CALL dst, которая запоминает адрес возврата в стеке до перехода к подпрограмме. После завершения подпрограммы управление возвращается к вызывающей программе командой возврата RET, которая восстанавливает программный счетчик из вершины стека. В ЭВМ без стека команда CALL



dst загружает адрес возврата в регистр или ячейку памяти, а возврат из подпрограммы выполняется посредством команды JMP с косвенной адресацией.

Помимо безусловных команд вызова подпрограмм и возврата из подпрограммы, в микро-ЭВМ СМ-1800 есть команды обращения CALL ССС Addr и возврата RET ССС по различным признакам (наличие или отсутствие переноса, положительный или отрицательный результат и др.), где ССС - трехразрядное поле кода признаков (подробнее о подпрограммах см. в § 7-5). Кроме того, в СМ-1800 безусловную передачу управления можно обеспечить командой PCHL, которая загружает программный счетчик адресом из регистровой пары Н, L.

В ЭВМ помимо основных рассмотренных команд имеются дополнительные (специальные) команды. Почти во всех ЭВМ предусмотрена команда NOOP (нет операции), которая является удобной при отладке программ. Например, команду, которую необходимо исключить из программы, можно заменить на NOOP, не изменяя остальной части программного модуля. Иногда команда NOOP используется также при построении точных программных задержек. В некоторых ЭВМ кроме обычной аппаратной начальной установки системы (начального сброса) после включения питания имеется команда сброса RESET, реализующая данную функцию программным путем.

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

2-<. РЕЖИМЫ АДРЕСАЦИИ ИНФОРМАЦИИ

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



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

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

Прямая адресация. В данном режиме адресации код адреса в команде является исполнительным адресом обращения к памяти. Однако указание полного прямого адреса требует много бит в команде ЭВМ с большим адресным пространством, и для уменьшения его некоторые ЭВМ используют короткую прямую адресацию, обеспечивающую доступ к ограниченной части адресного пространства. Из-за своей простоты и гибкости режим прямой адресации имеется во многих малых ЭВМ.

Регистровая адресация. В данном режиме адресации операнд содержится в одном из регистров процессора.

Непосредственная адресация позволяет в команде задавать операнд, который передается в процессор из памяти вслед за кодом операции для двух- или трехсловных команд.

Регистровая косвенная адресация получила широкое распространение в малых ЭВМ и по быстродействию приближается к прямой адресации, так как косвенный адрес извлекается из внутреннего регистра процессора и не тре-



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