Редактирование: ¦X¦

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

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

Текущая версия Ваш текст
Строка 7: Строка 7:
== Ввод слова |X| ==
== Ввод слова |X| ==
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша П|{{Чёрная клавиша|П}}]]   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша 0|{{Серая клавиша|0}}]]   [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша П|{{Чёрная клавиша|П}}]]
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша П|{{Чёрная клавиша|П}}]]   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша 0|{{Серая клавиша|0}}]]   [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша П|{{Чёрная клавиша|П}}]]
== Детали реализации ==
Слово |X| является «обёрткой» вокруг команды ЭКВМ [[K ABS|К |x|]].


== ABS и FABS в стандарте ANS Forth ==
== ABS и FABS в стандарте ANS Forth ==
Строка 40: Строка 43:


== Реализация ==
== Реализация ==
В [[Каллисто|Каллисто 1.0]] слово |X| является «обёрткой» вокруг команды ЭКВМ [[K ABS|К |x|]]:
<pre>
1453 ;#ABS
1454 ; |X|              ( x −− p )                          Вычислить модуль. p := |x|
1455 LABS:          .DB    3
1456                .TEXT  "|X|"                  ; ( x −− |x| )
1457                .DW    LSTOD
1458 ABS:            .DW    JABS                    ; Получить абсолютное значение.
1459 JABS:          PKRM03 KABS PKM03  KGOTO9      ; Обёртка вокруг K |x|
</pre>
Реализации из SP-Forth 4.20:
<pre>
CODE ABS ( n -- u ) \ 94
\ u - абсолютная величина n.
    MOV    ECX, EAX
    SAR    ECX, 1F
    XOR    EAX, ECX
    SUB    EAX, ECX
    RET
END-CODE
</pre>
<pre>
CODE FABS 
      FABS
      RET
END-CODE
</pre>
=== Советская реализация ===
У Баранова-Ноздрунова приводится следующее определение слова |X| (стр. 28):
У Баранова-Ноздрунова приводится следующее определение слова |X| (стр. 28):
   : |X|  ( A ---> абс A )    ↑ 0< IF /−/ THEN ;
   : |X|  ( A ---> абс A )    ↑ 0< IF /−/ THEN ;
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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