logo
КС-ZAO / Лекции ЦЭВМруский вариант11

2.Адрес addr затем записывается в счетчик команд, и выполняется программа.

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

Подгруппа А.PUSH и POP

Эти команды позволяют программисту по PUSH сохранить 2 байта данных в машинном стеке, а по POP-копировать 2 байта из машинного стека. Эти 2 байта данных должны копироваться в строго определенную пару регистров, но важно знать, что не производится никакой записи, которая указывала бы, к какому из двух регистров какой байт данных принадлежит.

Когда выполняется команда PUSH, указатель стека предварительно уменьшается, чтобы указать на свободный адрес, и в стек копируется содержимое старшего регистра. Затем указатель стека уменьшается вторично, и величина из младшего регистра копируется в стек. Противоположные действия имеет место во время выполнения команды POP.

Подгруппа B. Команды CALL.

Действие команд CALL следующие:

1.Текущее значение счетчика команд, т.е. адрес первой ячейки после ADDR, сохраняется в стеке. Указатель стека изменяется как в случае команды PUSH. Старший байт счетчика команд сохраняется в стеке над младшим байтом.