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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
(Новая страница: «'''TOGGLE''' — стандартное слово Каллисто. {{нет иллюстраций}} {{заготовка}} Категория:Слова…»)
 
 
(не показано 18 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''TOGGLE''' — стандартное слово [[Каллисто]].
'''TOGGLE''' — архаичное слово [[Каллисто]].
TOGGLE        ( a c −− )                          Изменить байт с адресом a по xor−маске c.
При обращении adr c TOGGLE извлекается байт из ячейки с адресом adr, выполняется операция [[XOR]] (Исключающее ИЛИ) над этим байтом и байтом c, а результат записывается снова в ячейку с адресом adr.
 
У TOGGLE стандартный, но необычный порядок операндов. Будьте внимательны!
 
== Ввод слова TOGGLE ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша 5|{{Серая клавиша|5}}]] [[Клавиша БП|{{Чёрная клавиша|БП}}]] [[Клавиша БП|{{Чёрная клавиша|БП}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
 
== TOGGLE в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
TOGGLE      addr b --
        Complement the contents of addr by the bit pattern b.
 
== История ==
Обратите внимание на необычный для [[Каллисто]] порядок аргументов у слова TOGGLE. Он противоречит принятой практике программирования на Форте, например порядку аргументов стандартного слова [[+!]].
 
Возможно, именно по этой причине архаичное слово TOGGLE не вошло ни в один из стандартов.
 
== Реализация ==
<pre>
2135 ;#TOGGLE
2136 ; TOGGLE          ( a c −− )                          Изменить байт с адресом a по xor−маске c.
2137 ; У TOGGLE стандартный, но необычный порядок операндов. Будьте внимательны!
2138 LTOGL:          .DB    6
2139                .TEXT  "TOGGLE"
2140                .DW    LMMSTOR
2141 TOGL:          .DW    JTOGL
2142 JTOGL:          RM3 M8  1 + MA  1 + M3
2143                KRMA 1 EE 4 −  KX>=09          ; Не менять ничего в памяти программ
2144                MA KRM8 KRMA KXOR KMA
2145                KGOTO9
</pre>
 
=== Советская реализация ===
В FORTH ИТЭФ слово TOGGLE также было [[примитив]]ом и называлось TOGL
 
Вот его определение:
<PRE>
            HEAD    204Q,'TOG',314Q.TOGL                ; TOGGLE
  ; адр-байта маска =>XOR в байт памяти
            POP  CX        ; Маска
            POP  BX
            XOR  BYTE PTR [BX],CL
            NEXT
</PRE>
 
== Ссылки ==
* {{Исходник|TOGGLE|TOGGLE}}
* См. слова [[XOR]], [[Слово !|!]] и [[+!]]
 


{{нет иллюстраций}}
{{нет иллюстраций}}
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Примитивы]]
[[Категория:Работа с памятью Каллисто]]
[[Категория:Архаичные слова]]

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

TOGGLE — архаичное слово Каллисто.

TOGGLE         ( a c −− )                           Изменить байт с адресом a по xor−маске c.

При обращении adr c TOGGLE извлекается байт из ячейки с адресом adr, выполняется операция XOR (Исключающее ИЛИ) над этим байтом и байтом c, а результат записывается снова в ячейку с адресом adr.

У TOGGLE стандартный, но необычный порядок операндов. Будьте внимательны!

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

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

TOGGLE в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]

TOGGLE       addr b --
       Complement the contents of addr by the bit pattern b.

История[править]

Обратите внимание на необычный для Каллисто порядок аргументов у слова TOGGLE. Он противоречит принятой практике программирования на Форте, например порядку аргументов стандартного слова +!.

Возможно, именно по этой причине архаичное слово TOGGLE не вошло ни в один из стандартов.

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

2135 ;#TOGGLE
2136 ; TOGGLE           ( a c −− )                           Изменить байт с адресом a по xor−маске c.
2137 ; У TOGGLE стандартный, но необычный порядок операндов. Будьте внимательны!
2138 LTOGL:          .DB     6
2139                 .TEXT   "TOGGLE"
2140                 .DW     LMMSTOR
2141 TOGL:           .DW     JTOGL
2142 JTOGL:          RM3 M8  1 + MA  1 + M3
2143                 KRMA 1 EE 4 −  KX>=09           ; Не менять ничего в памяти программ
2144                 MA KRM8 KRMA KXOR KMA
2145                 KGOTO9

Советская реализация[править]

В FORTH ИТЭФ слово TOGGLE также было примитивом и называлось TOGL

Вот его определение:

            HEAD     204Q,'TOG',314Q.TOGL                 ; TOGGLE
   ; адр-байта маска =>XOR в байт памяти
            POP  CX         ; Маска
            POP  BX
            XOR  BYTE PTR [BX],CL
            NEXT

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


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


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