U@

Материал из ПМК вики
Версия от 16:35, 9 ноября 2017; AtH (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

U@ (разыменовать беззнаковое, читается «ю-извлечь») — родное слово Каллисто. Считываем в стек 2-х байтовое целое без знака.

U@             ( a -- U )                      Извлечь беззнаковое. Считать беззнаковое значение ячейки с адресом a.

Заносит в стек число x, хранящееся в ячейке по адреcу a.

Из двухбайтовой ячейки по адресам a и a+1 (старший и младший байт соответственно) считывается 16-битное двоичное целое без знака x (x меняется от 0 до 65535).

Адрес a должен указывать на память программ или на байтовые регистры. Благодаря минимизации проверок примитив U@ исполняется быстрее слова @

Ввод слова U@[править]

В режиме ЛАТ последовательно нажмите три клавиши  3     P   ИП 

Эти нажатия оставляют клавиатуру в режиме NUM.

Реализация[править]

2169 ;#UFetch
2170 ; U@               ( a −− U )                           Извлечь беззнаковое. Считать беззнаковое значение ячейки с адресом a.
2171 ; Считать и положить на стек 2−х байтовое целое без знака.
2172 ; Единый адрес должен указывать на память программ или на байтовые регистры.
2173 ; Слово U@ не предназначено для считывания регистров функций и десятичных регистров!
2174 ; Без лишних проверок, очень быстро.
2175 LUAT:           .DB     2
2176                 .TEXT   "U@"                    ; ( адрес −− беззнаковое )
2177                 .DW     LAT
2178 UAT:            .DW     JUAT
2179 JUAT:           PKRM03 MA  1 EE 4 −  FX>=0 UAT1
2180                 MA M5
2181 UAT0:           KRMA RME ∗ KRM5 + PKM03 KGOTO9  ; Сюда есть переход из @
2182 UAT1:           RMA KPRGM RME ∗                 ; Сюда есть переход из @
2183                 RMA 1 + KPRGM +
2184                 PKM03 KGOTO9

Ссылки[править]


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


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