Cтраница 1
Операционный стек - такое соединение регистров RX, RY, R, RT и RX1, при котором содержимое каждого из этих регистров ПМК по специальным командам засылается в соседний регистр. [1]
Операционный стек этих ПМК содержит два рабочих регистра X и Y, a оперативная память имеет различную емкость. [2]
При вводе оператора В f операционный стек смещается вверх ( рис. 4.1, 6), что может быть описано как РТ: PZ; PZ: PY; PY: - РХ. [3]
Подобная запись с символами содержимого операционного стека удобна для составления программы. [4]
Клавиша ENTER, при нажатии которой содержимое операционного стека обычно смещается вверх, в ПМК НР-28С вводит операцию выполнить грамматический разбор и ввести числовое значение в командную строку. Расчетные формулы отображаются на индикаторе в алгебраической скобочной записи, а в командной строке компилируются в соответствии с правилами обратной польской записи, обеспечивающей непосредственное выполнение операции после считывания процессором команды выполнения операции. [5]
Выполнение программы на языке RPL непосредственно связано с работой операционного стека. В отличие от операционных стеков других ПМК с регистрами данных, в НР-28С операционный стек является многоуровневым стеком файлов, длина которых ограничена лишь емкостью области пользователя ОЗУ. [6]
Следующие 5 страниц этого блока выделены для хранения содержимого регистров операционного стека XI, X, Y, Z и Т, а оставшиеся п - 7 страниц при соответствующем программном обеспечении операций в системе могут быть заняты памятью программ или данных Ms. Блок МЗ выделен для области программ Мр, в которой могут храниться In шагов ( программных слов) прикладной программы емкостью 1 байт ( 8 бит), или 2 тетрады, каждое. [7]
Когда результат вычислений стремится к бесконечности, регистры памяти данных или операционного стека ПМК переполняются, и обычно выполнение программы автоматически прекращается. Это позволяет обнаружить и устранить ошибку, приводящую к потере точности. Значительно опаснее попадание результата вычислений в область машинного нуля. В этом случае значение отличающегося от нуля промежуточного результата принимается равным нулю независимо от дальнейших операций, причем попадание конечного малого результата вычислений в область машинного нуля в современных ПМК ( как и в большинстве универсальных ЭВМ других классов) не диагностируется. Это требует особого внимания программиста, который должен предусмотреть и устранить возможность возникновения подобных ситуаций в процессе вычислений. [8]
Операционное устройство состоит из четырех регистров ( регистры стековой памяти) операционного стека РХ, PY, PZ, РТ и регистра РХ 1 - регистра предыдущего результата. Входной регистр РХ, называемый также индикаторным регистром, соединен через дешифратор с индикатором, на котором высвечивается содержимое регистра РХ. В этом смысле РХ иногда отождествляется с индикатором. [9]
При выполнении контрольных примеров почти во всех случаях диагностируется переполнение входного регистра операционного стека, в частности, при делении на нуль. Обычно диагностируется и попадание аргумента вне области определения стандартных функций, например при попытке извлечения корня квадратного или логарифма отрицательного числа. В некоторых случаях в режиме автоматического выполнения программы переполнение может не диагностироваться, если оно устраняется при выполнении ближайшей операции ( примеры приведены в гл. [10]
Чтобы определить контрольные значения содержимого регистра индикации, обычно приходится исследовать перемещение содержимого всех регистров операционного стека в процессе выполнения рассматриваемого фрагмента или даже всей программы. С этой целью можно составить таблицу содержимого регистров операционного стека на каждом шаге выполняемой программы, соответствующую последним столбцам табл. 5.1. Примером может служить также приведенная в табл. 5.4 программа решения алгебраического уравнения второй степени без обращения к памяти данных, при составлении которой приходится тщательно контролировать перемещение информации в операционном стеке. [11]
В связи с умолчанием имен текущих переменных при чтении и составлении программ пользователю приходится представлять мысленно или на бумаге содержимое регистров операционного стека, что затрудняет пользование ПМК. [12]
В ПМК НР-35 при последовательной передаче информации был выбран центральный процессор с обработкой в арифметическо-логи-ческом устройстве за один такт содержимого 4 двоичных разрядов, соответствующего одной десятичной или шестнадцатеричной цифре, а также операционным стеком с четырьмя регистрами текущих данных, работающими по правилам обратной польской записи, что уменьшило аппаратурные затраты. [13]
Сообщения об ошибке вырабатываются операционными системами многих ПМК с алгоритмическими языками и в других критических случаях, например при неверной работе внешних устройств вследствие снижения напряжения питания, при переполнении оперативной памяти или отдельных запоминающих устройств - стека возврата из подпрограмм или даже операционного стека. [14]
При считывании в регистр КОП кода оператора присваивания он интерпретируется последовательностью команд, каждая из которых транслируется в последовательность микропрограмм, составленных из микрокоманд, управляющих выполнением соответствующих логических операций над двоичными разрядами содержимого рабочих регистров X и Y ( или X при одноместных операциях) операционного стека с засылкой результата операции в регистр X. В ПМК с компактными входными языками данные из памяти вызываются в регистр X, а копии содержимого регистра X засылаются в память данных только при считывании соответствующего оператора обращения к памяти. В ПМК с алгоритмическими входными языками данные вызываются из памяти по именам переменных, записанным в правой части оператора присваивания и соответствующим определенным ячейкам памяти данных. Результат операции в этом случае засылается в ячейку памяти, которой при трансляции программы присвоен адрес, соответствующий имени переменной в левой части оператора присваивания. [15]