Редактирование:
Слово ×
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == Слово × является «обёрткой» вокруг команды ЭКВМ [[×]], вызывающей переполнение при результате, по модулю больше либо равном 10<sup>100</sup>. Обработка этой ошибки производится [[Встроенная программа|встроенной программой]]. Например, последовательность слов {{Текст на индикаторе|1E50 ↑ ×}} вызывает [[аварийный останов]] [[Каллисто]] с сообщением «Переполнение» в [[Строка комментариев|строке комментариев]]. Можно ввести с клавиатуры произвольное число в качестве значения «10<sup>100</sup>» и вернуться в [[Каллисто]], нажав [[Клавиша С/П|{{Чёрная клавиша|С/П}}]]. Подробнее см. статью [[Авост Каллисто]]. В случае [[Авост Каллисто|аварийного останова]] рекомендуется произвести [[COLD|«холодную перезагрузку»]] [[Каллисто]] с удалением всех введённых слов, нажав последовательно клавиши [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша С/П|{{Чёрная клавиша|С/П}}]]. Слово × также может использоваться для умножения целых чисел, как в Форте. В этом случае произведение x3 — также целое число, если его модуль не превышает 10<sup>12</sup>. <pre> 1349 ;#Times 1350 ; × ( y x −− x1 ) Умножить. x1 := y×x 1351 LSTAR: .DB 1,179 ; "∗" Символ умножения на МК−161. 1352 .DW LSUB ; ( a b −− a∗b ) 1353 STAR: .DW JSTAR ; Произведение чисел y и x. 1354 JSTAR: RM3 MB 1 + MA M3 1355 KRMA KRMB ∗ KMA ; Обёртка вокруг ∗ 1356 KGOTO9 </pre> Реализации из SP-Forth 4.20: <pre> CODE * ( n1|u1 n2|u2 -- n3|u3 ) \ 94 \ Перемножить n1|u1 и n2|u2 и получить произведение n3|u3. IMUL DWORD [EBP] LEA EBP, 4 [EBP] RET END-CODE </pre> <pre> CODE F* \ * DE C9 FMULP ST(1), ST(0) RET END-CODE </pre> === Советская реализация === Слово × в ФОРТ-ЕС и FORTH ИТЭФ называлось ∗ и работало только с целыми числами. Определялось оно также одинаково, через [[примитив]] M∗ Вот описания и определения этих двух слов в ядре ФОРТ-ЕС: <PRE> M* T N1,N2->D ПРОИЗВЕДЕНИЕ ДВОЙНОЙ ДЛИНЫ N1 И N2 18 * N1,N2->N3 ПРОИЗВЕДЕНИЕ ЧИСЕЛ N1 И N2 18 Экран номер 18 ( 03.10.84 М* M/ * /MOD / MOD */MOD */) CODE M* ( N1,N2->D) RH1 SECOND LH, RW1 FIRST MH, 2PUTRW1 B, : * ( N1,N2->N3) M* DROP ; </PRE> Определения этих двух слов в FORTH ИТЭФ: <PRE> HEAD 202Q,'M',252Q,MSTAR ; M* POP AX POP CX IMUL CX PUSH AX PUSH DX NEXT ... HEAD 201Q,,252Q,STAR,$COL ; * DW MSTAR,DROP,SEMI </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице