Cтраница 1
Содержимое указателя стека автоматически уменьшается на 1, 2, 4 в зависимости от разрядности МП ( декрементируется) при записи слова данных в стек и увеличивается на 1, 2, 4 ( инкрементируется) при выдаче слова данных из стека. [1]
В режиме хранения содержимое указателя стека ( указатель стека представляет собой двухразрядный реверсивный счетчик, построенный на В-триггерах с динамической записью) остается без изменения и на выходы УЗ-УО может быть прочитана информация из ячейки памяти, на которую указывает указатель стека. Наибольший интерес представляют режимы записи и чтения стека. В режиме записи адрес микрокоманды, сформированный в СМК, по положительному фоонту тактового сигнала Т записывается в регистр СЛЖ. [2]
Команда FINCSTP увеличивает содержимое указателя стека ST на единицу. Она не изменяет содержимого арифметического регистра и соответствующих ему разрядов регистра TAG, а также не выполняет каких-либо пересылок. [3]
Команда FDECSTP уменьшает содержимое указателя стека ST на единицу. Эта команда не влияет на содержимое арифметического регистра и регистра TAG, не осуществляет никаких пересылок данных. [4]
Действительное данное из операнда-источника выгружается путем увеличения содержимого указателя стека в регистре слова состояния на единицу и присвоения верхнему регистру стека ST ( 0) состояния пусто в регистре признаков. В остальном команда FSTP аналогична команде FST. Задание команды FSTP ST ( 0) эквивалентно выборке из стека без пересылки данных. [5]
Команда FILD ( INTEGER LOAD) уменьшает на единицу содержимое указателя стека ST в регистре слова состояния, преобразует внешний 2 -, 4 - или 8-байтный целочисленный формат во внутренний временный действительный формат и загружает его в верхний ( новый) регистр стека. [6]
Содержимое аккумулятора пересылается в ячейку памяти, адрес которой на единицу меньше содержимого указателя СТЕКа SP. Содержимое флагов объединяется в слово состояния, это слово пересылается в ячейку памяти, адрес которой на 2 меньше содержимого указателя СТЕКа. [7]
После выполнения команды загрузки в стек не требуется использовать команду уменьшения на 1 содержимого указателя стека, поскольку это делается автоматически. [8]
В памяти ( ЗУПВ) стек может удлиняться в направлении своего конца, причем содержимое указателя стека ( УС) автоматически уменьшается на 2 после каждого занесения в стек и увеличивается на 2 после каждого извлечения. Свойство стека последним вошел - первым вышел облегчает организацию обращений к подпрограммам из подпрограмм. Фактически подпрограммы могут обращаться даже к самим себе, если предшествующие параметры тоже занесены в стек. [9]
Почему непосредственно после выполнения команды загрузки в стек не требуется использовать команду уменьшения на 1 содержимого указателя стека. [10]
![]() |
Структурная схема микропроцессора. [11] |
Ввод новой информации в стековую память осуществляют в ячейку с адресом на единицу меньшим, чем содержимое указателя стека. Считывание кодов из стека производится из ячейки с адресом, находящимся в указателе стека. [12]
Старшие 8 бит адреса следующей команды пересылаются в ячейку памяти, адрес которой на единицу меньше содержимого указателя СТЕКа. Младшие 8 бит адреса следующей команды пересылаются в ячейку памяти, адрес которой на два меньше содержимого указателя СТЕКа. Содержимое указателя СТЕКа уменьшается на два. [13]
Старшие 8 бит адреса следующей команды пересылаются в ячейку памяти, адрес которой на единицу меньше содержимого указателя СТЕКа SP. Младшие 8 бит адреса следующей команды пересылаются в ячейку памяти, адрес которой на 2 меньше содержимого указателя СТЕКа SP. Управление передается команде, адрес которой указан во втором и третьем байтах команды вызова. [14]
С помощью команды RTS ( Return from Subroutine) последний адрес возврата переписывается из стека в программный счетчик, и содержимое указателя стека увеличивается на два. Таким образом, адреса возврата обрабатываются, как это и требуется, в порядке, обратном их поступлению. [15]