Редактирование:
×/MOD
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == <pre> 1412 ;#TimesSlashMOD 1413 ; ×/MOD ( z y x −− y1 n ) Получить частное n и остаток y1 от деления произведения z×y на x. 1414 ; Остаток y1 и частное n от деления произведения z∗y на x. 1415 ; Промежуточный результат z∗y содержит 14 десятичных разрядов. 1416 LSSMOD: .DB 5 1417 .DB 179 ; Символ умножения МК−161. 1418 .TEXT "/MOD" ; "∗/MOD" ( множитель1 множитель2 делитель −− остаток частное) 1419 .DW LSSLA 1420 SSMOD: .DW JSSMOD 1421 JSSMOD: RM3 M8 1 + MA M3 1 + MB 1422 KRMB KRMA ∗ ENT KRM8 / FANS <−> KINT KMA ∗ − KMB 1423 KGOTO9 </pre> Реализация из SP-Forth 4.20: <pre> CODE */MOD ( n1 n2 n3 -- n4 n5 ) \ 94 \ Умножить n1 на n2, получить промежуточный двойной результат d. \ Разделить d на n3, получить остаток n4 и частное n5. MOV ECX, EAX MOV EAX, [EBP] \ n2 IMUL DWORD 4 [EBP] \ n1*n2 IDIV ECX \ n1*n2/n3 MOV 4 [EBP], EDX \ rem LEA EBP, 4 [EBP] RET END-CODE </pre> === Советская реализация === Слово ×/MOD ФОРТ-ЕС и FORTH ИТЭФ называлось ∗/MOD и определялось через [[примитив]]ы M∗ и M/ Вот описания и определения этих слов в ядре ФОРТ-ЕС: <PRE> */MOD N1,N2,N3->N4,N5 ОСТАТОК N4 И ЧАСТНОЕ N5 18 ОТ ДЕЛЕНИЯ ПРОИЗВЕДЕНИЯ N1*N2 НА N3 M* T N1,N2->D ПРОИЗВЕДЕНИЕ ДВОЙНОЙ ДЛИНЫ N1 И N2 18 M/ * D,N1->N2,N3 ОСТАТОК N2 И ЧАСТНОЕ N3 ОТ 18 ДЕЛЕНИЯ ДВОЙНОГО D НА ОДИНАРНОЕ N1 Экран номер 18 ( 03.10.84 М* M/ * /MOD / MOD */MOD */) CODE M* ( N1,N2->D) RH1 SECOND LH, RW1 FIRST MH, 2PUTRW1 B, CODE M/ ( D,N1->N2,N3) 1 POP, 14 LRW1 SAL, RSTACK RTWO SR, RW1 32 SRDA, 0,RW1 LR, RW1 1 DR, 0 1 XR, 0 0 LTR, ?M IF, RW1 1 AR, RW2 0 BCTR, THEN, RW1 FIRST 4 +(, STH, RW1 RM2 LR, ( ЧАСТНОЕ) POPPUT1 B, END-CODE : */MOD ( N1,N2,N3->N4,N5) >R M* R> M/ ; </PRE> Вот описания и определения этих слов в FORTH ИТЭФ: <PRE> HEAD 202Q,'M',252Q,MSTAR ; M* POP AX POP CX IMUL CX PUSH AX PUSH DX NEXT ... HEAD 202Q,'M',257Q,MSLAS ; M/ POP CX ; Делимое POP DX POP AX IDIV CX PUSH DX PUSH AX NEXT ... HEAD 205Q,'*/MO',304Q,SSMOD,$COL ; */MOD DW TOR,MSTAR,FROMR,MSLAS,SEMI </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице