R0: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
 
Строка 1: Строка 1:
'''Регистр 0''' (R0) — регистр ПМК, доступный с помощью [[регистровая адресация|регистровой адресации]].  Используется для хранения десятичных данных, представленных в форме с естественной или плавающей запятой.
'''Регистр 0''' (R0) — регистр ПМК, доступный с помощью [[регистровая адресация|регистровой адресации]].  Используется для хранения [[Десятичное число|десятичных данных]], представленных в форме с естественной или плавающей запятой.


Для записи в регистр 0 служит команда [[П0]] с кодом 40.  Для чтения регистра 0 служит команда [[ИП0]] с кодом 60.  Также десятичный регистр 0 используется в командах циклов [[FL0]] и [[PFL0]].
Для записи в регистр 0 служит команда [[П0]] с кодом 40.  Для чтения регистра 0 служит команда [[ИП0]] с кодом 60.  Также десятичный регистр 0 используется в командах циклов [[FL0]] и [[PFL0]].
Строка 5: Строка 5:
== Модификация R0 при косвенной адресации ==
== Модификация R0 при косвенной адресации ==


Cодержимое адресного регистра 0 перед выполнением команд с косвенной адресацией изменяется. Если записанное в регистр 0 число меньше нуля, в регистр 0 записывается число нуль. Дробная часть числа, записанного в регистр 0, отбрасывается.
Cодержимое адресного регистра 0 перед выполнением команд с косвенной адресацией изменяется. Если записанное в регистр 0 число меньше нуля, регистр 0 обнуляется. Дробная часть числа, записанного в регистр 0, отбрасывается.


При '''косвенном обращении с регистровой адресацией''' через регистр 0 (например, [[КИП0]]) перед обращением происходит дополнительное изменение содержимого этого регистра. При использовании регистра 0 происходит косвенная адресация с предварительным автодекрементированием, то есть вычитанием числа 1 из содержимого адресного регистра 0 перед выполнением обращения к памяти.
При '''косвенном обращении с регистровой адресацией''' через регистр 0 (например, [[КИП0]]) перед обращением происходит дополнительное изменение содержимого этого регистра. При использовании регистра 0 происходит косвенная адресация с предварительным автодекрементированием, то есть вычитанием числа 1 из содержимого адресного регистра 0 перед выполнением обращения к памяти.

Текущая версия от 01:44, 14 января 2020

Регистр 0 (R0) — регистр ПМК, доступный с помощью регистровой адресации. Используется для хранения десятичных данных, представленных в форме с естественной или плавающей запятой.

Для записи в регистр 0 служит команда П0 с кодом 40. Для чтения регистра 0 служит команда ИП0 с кодом 60. Также десятичный регистр 0 используется в командах циклов FL0 и PFL0.

Модификация R0 при косвенной адресации[править]

Cодержимое адресного регистра 0 перед выполнением команд с косвенной адресацией изменяется. Если записанное в регистр 0 число меньше нуля, регистр 0 обнуляется. Дробная часть числа, записанного в регистр 0, отбрасывается.

При косвенном обращении с регистровой адресацией через регистр 0 (например, КИП0) перед обращением происходит дополнительное изменение содержимого этого регистра. При использовании регистра 0 происходит косвенная адресация с предварительным автодекрементированием, то есть вычитанием числа 1 из содержимого адресного регистра 0 перед выполнением обращения к памяти.

При косвенном обращении с прямой адресацией к регистру 0 (например PKИП 00) автодекрементирования содержимого адресного регистра 0 не происходит.

Описанное выше изменение содержимого регистра адресации 0 при косвенном обращении называется модификацией.

Модификация R0 на советских ПМК[править]

Если в регистре 0 содержится число от 1 до 15 (до 105 при адресации памяти программ), его модификация происходит также, как на современных ЭКВМ — путём отбрасывания дробной части (усечения) и уменьшении регистра 0 на единицу.

Модификация чисел меньше 1, а также больших положительных чисел на советских ПМК не документирована и точное поведение может зависеть от модели.

Младшие регистры памяти
R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 RA RB RC RE