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
Ссылки[править]
- Исходный текст слова U@ в Каллисто Классик 1.0
- См. слова @, C@, ! и символ @
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |