Слово П

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

П (регистру присвоить, читается «пэ») — системное слово Каллисто. Прямая запись в память данных.

П              ( t z y x u -- t z y )          Память. Запись x в регистр с номером u.
Пример работы слова П

Запись в регистр ЭКВМ с номером u (u от 0 до 9999) при стеке ЭКВМ, заполненном на основе стека данных.

Будьте осторожны! Бездумное изменение регистров, используемых Каллисто, может привести к непредсказуемым последствиям.

Ввод слова П

В режиме РУС нажмите белую клавишу  8 

Замечание

Слово П — наиболее удобный и совместимый способ изменить содержимое регистра функций МК-161 (u от 9000 до 9999). Когда запись в регистр функций требует нескольких чисел, они все берутся со стека данных (вплоть до верхних четырёх), но слово П удаляет из стека лишь верхнее из них.

Также слово П важно для совместимости с Каллисто 2.0, в которой предполагается отказ от единой адресации. При использовании рекомендуемых переменных VALUE необходимость в использовании П или ! возникает не так часто.

Реализация

В Каллисто 1.0 слово П переносит содержимое верхних четырёх элементов стека в стек калькулятора:

 805 ;#pe
 806 ; П                ( t z y x U −− t z y )               Записать x в регистр МК−161 с номером U.
 807 ; Записать регистр МК−161 RU при стеке МК−161, заполненном на основе стека Форта.
 808 ; Не осуществлять преобразование адресов, полностью "сырое" обращение к регистру.
 809 LRSTO:          .DB     1,143                   ; "П"
 810                 .DW     LDIGIT                  ; ( r1 r2 r3 значение номер −− r1 r2 r3 )
 811 RSTO:           .DW     JRSTO
 812 JRSTO:          PKRM03 MA RM3 2 + M3            ; RA := u
 813                 3 + M0
 814                 KRM0 KRM0 KRM0 KRM0
 815                 KMA KGOTO9

Ссылки


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.