Редактирование: 2/

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 6: Строка 6:
== Ввод слова 2/ ==
== Ввод слова 2/ ==
В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 2|{{Серая клавиша|2}}]]   [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]]
В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 2|{{Серая клавиша|2}}]]   [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]]
== Детали реализации ==
Слово 2/ осуществляет арифметический сдвиг вправо на один двоичный разряд — сохраняя знак всех целых чисел, кроме 1.  [[2×|Слово 2×]] осуществляет обратное действие, двоичный сдвиг влево.
[[Каллисто]] реализована поверх десятичной машины [[«Электроника МК-161»]], поэтому поведение этих двух команд может не всегда соответствовать тому, как они реализованы на двоичных форт-машинах.


== 2/ в стандарте ANS Forth ==
== 2/ в стандарте ANS Forth ==
Строка 32: Строка 37:


== Реализация ==
== Реализация ==
Слово 2/ осуществляет арифметический сдвиг вправо на один двоичный разряд — сохраняя знак всех целых чисел, кроме 1.  [[2×|Слово 2×]] осуществляет обратное действие, двоичный сдвиг влево.
[[Каллисто|Каллисто 1.0]] реализована поверх десятичной машины [[«Электроника МК-161»]], поэтому поведение этих двух команд может не всегда соответствовать тому, как они реализованы на двоичных форт-машинах:
<pre>
1314 ;#TwoDiv
1315 ; 2/              ( x −− n )                          Половина. n := Trunc [x/2]
1316 LDIV2:          .DB    2
1317                .TEXT  "2/"                    ; ( n −− [n/2] )
1318                .DW    LMUL2
1319 DIV2:          .DW    JDIV2
1320 JDIV2:          PKRM03 2 / KINT PKM03  KGOTO9  ; Целочисленное деление на 2 (двоичный сдвиг вправо).
</pre>
Реализация из SP-Forth 4.20:
<pre>
CODE 2/ ( x1 -- x2 ) \ 94
\ x2 - результат сдвига x1 на один бит вправо без изменения старшего бита.
    D1 C, F8 C,  \    SAR EAX, # 1
    RET
END-CODE
</pre>
=== Советская реализация ===
Слово 2/ в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
Слово 2/ в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
<PRE>
<PRE>
Строка 96: Строка 79:
[[Категория:Стандартные слова]]
[[Категория:Стандартные слова]]
[[Категория:1994 CORE]]
[[Категория:1994 CORE]]
[[Категория:2012 CORE]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/2/