Cтраница 3
Область памяти, в которую помещается содержимое общих регистров, начинается с ячейки, адрес которой равен адресу второго операнда, и состоит из требуемого количества ячеек. Запись в память содержимого общих регистров производится в порядке возрастания их адресов, начиная с регистра, заданного полем Ri, и кончая регистром, заданным R3, включительно. [31]
В области сохранения вызывающей программы запоминаются содержимое общих регистров вызывающей программы и адрес области сохранения вызываемой программы. [32]
В области сохранения вызывающей программы запоминается содержимое общих регистров вызывающей программы и адрес области сохранения вызываемой программы. Если вызывающая программа является также и вызываемой, то в ее области сохранения запоминается адрес области сохранения программы, которая ее вызвала. [33]
Эта команда используется для алгебраического сравнения содержимого общего регистра как числа с фиксированной точкой со значением содержимого полного слова данных из памяти, также рассматриваемого как число с фиксированной точкой. [34]
В этом примере показана возможность изменения содержимого общего регистра, которое в программе рассматривается как представленное в шестнадцатеричной форме. [35]
Во время прерывания от схем контроля машины содержимое общих регистров, регистров с плавающей точкой и управляющих регистров, а также таймера CPU и компаратора, если последние имеются, запоминается в фиксированных ячейках основной памяти. Недопустимый СВС, обнаруженный во время этой операции, не приводит к возникновению дополнительного условия прерывания от схем контроля машины. Вместо этого правильность сохранения информации указывается путем соответствующей установки битов достоверности в коде прерывания от схем контроля; В некоторых моделях во время прерывания производится автоматическая коррекция содержимого регистров с недопустимым кодом. В других моделях требуется программная коррекция. Содержимое часов и регистра префикса во время прерывания от схем контроля машины не запоминается и не корректируется. [36]
Это продолжается до тех пор, пока содержимое общего регистра 5 не уменьшится до нуля. [37]
Так как некоторые команды затрагивают лишь часть содержимого общего регистра, только что приведенное использование команды SH с целью очистки регистра гарантирует, что старшие разряды содержат нули. Например, при использовании команды 1C, изменяющей только младший байт регистра, программисту может понадобиться поместить в регистр 1 байт данных для последующего использования значения, задаваемого содержимым этого байта как двоичным числом без знака. Если старшие биты или байты регистра не установлены в нуль, то значение, хранящееся в регистре, не соответствует значению, записанному в младший байт. Такую ситуацию можно предотвратить, выполнив сначала команду SR с указанием в обоих операндах этого регистра. [38]
Область сохранения используется вызываемой подпрограммой для запоминания содержимого общих регистров вызывающей программы. С этой целью перед вызовом подпрограммы программист обязан занести в 13 - й регистр адрес своей области сохранения. [39]
Так как подпрограмма на языке Ассемблера может изменять содержимое общих регистров, то при входе в подпрограмму необходимо сохранить предыдущее состояние регистров вызывающей программы. Запоминание регистров может быть выполнено с помощью макрокоманды SAVE. Для того чтобы в случае ненормального завершения программы имя подпрограммы присутствовало в тексте сообщения об ошибке, рекомендуется имя подпрограммы указать в начале подпрограммы, начиная с 5-го байта. [40]
Когда команда ВСТ выполнится в сотый раз, содержимое общего регистра 5 станет равно нулю и переход не произойдет. [41]
Например, выполнение оператора BCTR 6 0 уменьшает содержимое общего регистра 6 на единицу, но не. [42]
Так как подпрограмма на языке Ассемблера может изменять содержимое общих регистров, то при входе в подпрограмму необходимо сохранить предыдущее состояние регистров вызывающей программы. Запоминание регистров может быть выполнено с помощью макрокоманды SAVE. Для того чтобы в случае ненормального выполнения программы имя подпрограммы присутствовало в тексте сообщения об ошибке, рекомендуется имя подпрограммы указать в начале подпрограммы, начиная с 5-го байта. [43]
Для того чтобы решить вопрос о необходимости сохранения содержимого общих регистров, необходимо знать структуру программы. Имеются случаи, когда можно не выполнять соглашение о связях, например, если известно, что в программе не используются системные макрокоманды. В динамических структурах программ требуется тщательное соблюдение соглашения о связях. [44]
Для того чтобы решить вопрос о необходимости сохранения содержимого общих регистров, необходимо знать, в каких сочетаниях будут использоваться программы. Имеются случаи, когда это требование можно не выполнять, например, если известно, что программа не обращается к другим программам и в ней не используются системные макрокоманды. В динамических структурах программ требуется тщательное соблюдение соглашения о связях. [45]