Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте или
создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Правка может быть отменена.
Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия |
Ваш текст |
Строка 40: |
Строка 40: |
|
| |
|
| == Реализация == | | == Реализация == |
| <pre>
| |
| 1794 ;#toR
| |
| 1795 ; >R ( d −− ) Перенести d на стек возвратов.
| |
| 1796 LTOR: .DB 2
| |
| 1797 .TEXT ">R" ; ( n −− ) ( R: −− n )
| |
| 1798 .DW LUNLOOP
| |
| 1799 TOR: .DW JTOR ; Перенести 16−битное целое из стека данных на стек возвратов.
| |
| 1800 JTOR: PKRM03 KINT
| |
| 1801 FX<0 TOR1
| |
| 1802 65536 +
| |
| 1803 TOR1: RME / ENT KFRAC RME ∗ KM2 ; На эмуляторах может возникнуть ошибка округления
| |
| 1804 FR KINT KM2
| |
| 1805 PGOTO JDROP
| |
| …
| |
| 2052 JDROP: 1 ; Да, это обработчик DROP
| |
| 2053 NDROP: RM3 + M3 ; А сюда сваливается 2DROP
| |
| 2054 KGOTO9
| |
| </pre>
| |
| Реализации из SP-Forth 4.20:
| |
| <pre>
| |
| CODE1 >R \ 94
| |
| \ Исполнение: ( x -- ) ( R: -- x )
| |
| \ Перенести x на стек возвратов.
| |
| \ Интерпретация: семантика в режиме интерпретации не определена.
| |
| POP EBX
| |
| PUSH EAX
| |
| MOV EAX, [EBP]
| |
| LEA EBP, 4 [EBP]
| |
| JMP EBX
| |
| ;C
| |
| </pre>
| |
| <pre>
| |
| CODE C->R \ 94
| |
| PUSH EAX
| |
| MOV EAX, [EBP]
| |
| LEA EBP, 4 [EBP]
| |
| RET
| |
| END-CODE
| |
| …
| |
| : >R ['] C->R INLINE, ; IMMEDIATE
| |
| </pre>
| |
| <pre>
| |
| : >R \ 94
| |
| ?COMP
| |
| S" C->R" TC-FINDOUT INLINE, ; IMMEDIATE
| |
| </pre>
| |
|
| |
| === Советская реализация ===
| |
| Слово >R в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение: | | Слово >R в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение: |
| <PRE> | | <PRE> |