Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте или
создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Правка может быть отменена.
Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия |
Ваш текст |
Строка 47: |
Строка 47: |
|
| |
|
| == Реализация == | | == Реализация == |
| <pre>
| |
| 1388 ;#SlashMOD
| |
| 1389 ; /MOD ( y x −− y1 n ) Делить y на x с частным n и остатком y1. n := Trunc [y/x], y1 := y mod x
| |
| 1390 LSLMOD: .DB 4
| |
| 1391 .TEXT "/MOD" ; ( делимое делитель −− остаток частное )
| |
| 1392 .DW LMOD
| |
| 1393 SLMOD: .DW JSLMOD
| |
| 1394 JSLMOD: RM3 MB 1 + MA ; Деление с остатком делимого y на делитель x.
| |
| 1395 KRMA ENT KRMB / FANS <−> KINT KMB ∗ − KMA
| |
| 1396 KGOTO9
| |
| </pre>
| |
| Реализация из SP-Forth 4.20:
| |
| <pre>
| |
| CODE /MOD ( n1 n2 -- n3 n4 ) \ 94
| |
| \ Делить n1 на n2, дать остаток n3 и частное n4.
| |
| \ Неоднозначная ситуация возникает, если n2 нуль.
| |
| MOV ECX, EAX
| |
| MOV EAX, [EBP]
| |
| CDQ
| |
| IDIV ECX
| |
| MOV [EBP], EDX
| |
| RET
| |
| END-CODE
| |
| </pre>
| |
|
| |
| === Советская реализация ===
| |
| Слово /MOD в FORTH ИТЭФ и ФОРТ-ЕС определялось одинаково, через [[примитив]] M/ | | Слово /MOD в FORTH ИТЭФ и ФОРТ-ЕС определялось одинаково, через [[примитив]] M/ |
|
| |
|