S⟩D: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
'''S>D''' — стандартное слово [[Каллисто]]. | '''S>D''' — стандартное слово [[Каллисто]]. | ||
S>D ( n −− u1 u2 ) Преобразовывает 32−битное число n в пару 16−битных чисел u2 u1. | |||
Слово S>D немного сложнее DUP 0< т.к. мы преобразовываем 12−разрядные десятичные числа, а не 16−битные двоичные. | |||
== Ввод слова S>D == | == Ввод слова S>D == | ||
Строка 46: | Строка 48: | ||
== Ссылки == | == Ссылки == | ||
* {{Исходник|StoD|S>D}} | |||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2170 S>D (s-to-d)] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2170 S>D (s-to-d)] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http://forth-standard.org/standard/core/StoD S>D (s-to-d)] в черновике Forth 200x ''(англ.)'' | * Слово [http://forth-standard.org/standard/core/StoD S>D (s-to-d)] в черновике Forth 200x ''(англ.)'' | ||
Строка 54: | Строка 57: | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Примитивы]] | [[Категория:Примитивы]] | ||
Версия от 19:30, 3 июня 2016
S>D — стандартное слово Каллисто.
S>D ( n −− u1 u2 ) Преобразовывает 32−битное число n в пару 16−битных чисел u2 u1.
Слово S>D немного сложнее DUP 0< т.к. мы преобразовываем 12−разрядные десятичные числа, а не 16−битные двоичные.
Ввод слова S>D
В режиме ЛАТ последовательно нажмите клавиши 1 P F ИП Р-ГРД-Г K
S>D в стандарте ANS Forth
6.1.2170 S>D "s-to-d" CORE ( n -- d ) Преобразовывает число n в число d две-ячейки с тем же самым числовым значением.
S->D в fig-FORTH Release 1 glossary, май 1979 (англ.)
S->D n --- d Sign extend a single number to form a double number.
Реализация
У Баранова-Ноздрунова приводится следующее определение слова S>D (стр. 29):
: S>D ( A ---> AA ) ↑ 0< IF -1 ELSE 0 THEN ;
Thinking Forth (стр. 242, Minimizing Control Structures) предлагает более быстрое решение:
: s>d ( n -- d ) \ расширение со знаком s в d ↑ O< ;
В ФОРТ-ЕС слово S>D было примитивом. Вот его описание и определение:
S>D * N->D РАСШИРИТЬ N ДО ЧИСЛА ДВОЙНОЙ ДЛИНЫ D 14 Экран номер 14 ( 31.03.86 S>D DABS DNEGATE D+ D- DU< ) CODE S>D ( N->D ) RW1 PULL, PUSH2RW1 B, END-CODE
В FORTH ИТЭФ слово S>D называлось S->D и также было примитивом, вот его определение (исправлена опечатка PUSH вместо PUS):
HEAD 204Q,'S->',304Q,STOD ; S->D POP AX PUSH AX MOV CX, DX ; Сохранение содержимого DX CWD PUSH DX MOV DX, CX ; Восстановление DX NEXT
Ссылки
- Исходный текст слова S>D в Каллисто Классик 1.0
- Слово S>D (s-to-d) в стандарте ANS Forth (англ.)
- Слово S>D (s-to-d) в черновике Forth 200x (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |