Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''TOGGLE''' — архаичное слово [[Каллисто]]. | | '''TOGGLE''' — стандартное слово [[Каллисто]]. |
| TOGGLE ( a c −− ) Изменить байт с адресом a по xor−маске c.
| |
| При обращении adr c TOGGLE извлекается байт из ячейки с адресом adr, выполняется операция [[XOR]] (Исключающее ИЛИ) над этим байтом и байтом c, а результат записывается снова в ячейку с адресом adr.
| |
|
| |
|
| У TOGGLE стандартный, но необычный порядок операндов. Будьте внимательны!
| | При обращении ADR b TOGGLE извлекается байт из ячейки с адресом ADR, выполняется операция XOR (Исключающее ИЛИ) над этим байтом и байтом b, а результат записывается снова в ячейку с адресом ADR. |
|
| |
|
| == Ввод слова TOGGLE ==
| |
| В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша 5|{{Серая клавиша|5}}]] [[Клавиша БП|{{Чёрная клавиша|БП}}]] [[Клавиша БП|{{Чёрная клавиша|БП}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
| |
|
| |
|
| == TOGGLE в fig-FORTH Release 1 glossary, май 1979 (англ.) == | | == TOGGLE в fig-FORTH Release 1 glossary, май 1979 (англ.) == |
| TOGGLE addr b -- | | TOGGLE addr b -- |
| Complement the contents of addr by the bit pattern 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]], [[Слово !|!]] и [[+!]]
| |
|
| |
|
|
| |
|
Строка 53: |
Строка 12: |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Примитивы]]
| |
| [[Категория:Работа с памятью Каллисто]] | | [[Категория:Работа с памятью Каллисто]] |
| [[Категория:Архаичные слова]] | | [[Категория:Слова Каллисто без стековых диаграмм]] |