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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
 
Строка 11: Строка 11:


Эти нажатия оставляют клавиатуру в [[Режим NUM|режиме NUM]].
Эти нажатия оставляют клавиатуру в [[Режим NUM|режиме NUM]].
== Реализация ==
<pre>
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
</pre>


== Ссылки ==
== Ссылки ==

Текущая версия от 16:35, 9 ноября 2017

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

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


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


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