MOD
Перейти к навигации
Перейти к поиску
MOD (остаток) — стандартное слово Каллисто.
MOD ( y x −− x1 ) Получение остатка от деления y на x. x1 := y mod x
Получение остатка x1 от деления y на x и занесение его в стек.
Ввод слова MOD
В режиме ЛАТ последовательно нажмите три клавиши ÷ 5 K
MOD в стандарте ANS Forth
6.1.1890 MOD CORE ( n1 n2 -- n3 ) Делит n1 на n2, возвращает остаток n3 одна-ячейка. Неопределенная ситуация существует, если n2 нулевое. Если n1 и n2 отличаются по знаку, возвращенный результат определенный реализацией будет такой же самый как и возвращенный фразой >R S>D R> FM/MOD DROP или фразой >R S>D R> SM/REM DROP. См.: 3.2.2.1 Целочисленное деление.
История
Слово MOD является одним из самых древних сохранившихся слов Форта. Оно было реализовано Чаком Муром для 2К×48бит версии Форта на Burroughs B-5500 в 1970 году.
MOD в предыдущем стандарте Forth-83 (англ.)
MOD n1 n2 -- n3 83 n3 is the remainder after dividing n1 by the divisor n2. n3 has the same sign as n2 or is zero. An error condition results if the divisor is zero or if the quotient falls outside of the range {-32,768..32,767}. See: "division, floored"
MOD в стандарте Forth-79 (англ.)
MOD n1 n2 -- n3 104 Divide n1 by n2, leaving the remainder n3, with the same sign as n1.
MOD в fig-FORTH Release 1 glossary, май 1979 (англ.)
MOD n1 n2 --- mod L0 Leave the remainder of n1/n2, with the same sign as n1.
Реализация
1378 ;#MOD 1379 ; MOD ( y x −− x1 ) Получить остаток от деления y на x. x1 := y mod x 1380 LMOD: .DB 3 1381 .TEXT "MOD" ; ( делимое делитель −− остаток ) 1382 .DW LSLASH 1383 MOD: .DW JMOD 1384 JMOD: RM3 MB 1 + MA M3 ; Получить остаток x1 от деления делимого y на делитель x. 1385 KRMA ENT KRMB / KINT KRMB ∗ − KMA 1386 KGOTO9
Реализация из SP-Forth 4.20:
CODE MOD ( n1 n2 -- n3 ) \ 94 \ Делить n1 на n2, получить остаток n3. \ Исключительная ситуация возникает, если n2 равен нулю. \ Если n1 и n2 различаются по знаку - возвращаемый результат зависит от \ реализации. MOV ECX, EAX MOV EAX, [EBP] CDQ IDIV ECX LEA EBP, 4 [EBP] MOV EAX, EDX RET END-CODE
Советская реализация
Слово MOD в ядре ФОРТ-ЕС реализовано через слово /MOD
MOD N1,N2->N3 ОСТАТОК ОТ ДЕЛЕНИЯ N1 НА N2 18 Экран номер 18 ( 03.10.84 М* M/ * /MOD / MOD */MOD */) : MOD ( N1,N2->N3) /MOD DROP ;
Слово MOD в FORTH ИТЭФ реализовано через слово /MOD
HEAD 203Q,'MO',304Q,$MOD,$COL ; MOD DW SLMOD,DROP,SEMI
Ссылки
- Исходный текст слова MOD в Каллисто Классик 1.0
- Слово MOD в стандарте ANS Forth (англ.)
- Слово MOD в черновике Forth 200x (англ.)
- ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- How to Get Results в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |