U@

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

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

Ссылки


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


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