Редактирование: EXIT

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 55: Строка 55:
В [[Каллисто|Каллисто 1.0]] примитив EXIT тесно связан с остальным [[Адресный интерпретатор|адресным интерпретатором]], сложность которого вызвана необходимостью исполнять [[шитый код]] как из [[Регистры байтовых данных|области данных]], так и из [[Память программ|памяти программ]]:
В [[Каллисто|Каллисто 1.0]] примитив EXIT тесно связан с остальным [[Адресный интерпретатор|адресным интерпретатором]], сложность которого вызвана необходимостью исполнять [[шитый код]] как из [[Регистры байтовых данных|области данных]], так и из [[Память программ|памяти программ]]:
<pre>
<pre>
179 ; Следующие две подпрограммы вызваются косвенно через RC (КППС) из : и DOES>
180 ; SETRIPRG и SETRIDAT внутри тела ":" содержат ссылки на RPUSHRIP и RPUSHRID
181
182 ; Начало CALL при вызове из памяти программ.
183 RPUSHRIP:
184                PPRM 9042                      ; RX := RI      ; Текущий указатель шитого кода
185                ENT RME / FANS <−> KINT M5 ∗ − KM2 RM5 KM2      ; RPUSH (RX)
186                RM7 RTN                        ; RX := W, оптимизация
187
188 ;
189 ; Начало CALL при вызове из памяти данных.
190 RPUSHRID:
191                RM6 10001 +                    ; RX := RI      ; Текущий указатель шитого кода
192                ENT RME / FANS <−> KINT M5 ∗ − KM2 RM5 KM2      ; RPUSH (RX)
193                RM7 RTN                        ; RX := W, оптимизация
1768 ;#EXIT
1768 ;#EXIT
1769 ; EXIT            ( −− )                              Закончить исполнение текущего определения.
1769 ; EXIT            ( −− )                              Закончить исполнение текущего определения.
Строка 81: Строка 97:
2487                FX<0 SETRIDAT
2487                FX<0 SETRIDAT
2488                GOTO SETPRG
2488                GOTO SETPRG
2489 ;
2490 CALL:                                          ;∗∗ CALL, когда управление передаётся в память программ
2491                KGSBC                          ; RPUSH RI ; RX := W, адрес поля кода нового слова
2492                2 +                            ; Теперь RX указывает на его тело
2493 SETRIPRG:
2494                PPM 9042                        ; R9042 := RX
2495 SETPRG:        .NUMT RPUSHRIP
2495 SETPRG:        .NUMT RPUSHRIP
2496                MC                              ; RC := RPUSHRIP        ;∗∗ Следующий вызов −− из памяти программ
2496                MC                              ; RC := RPUSHRIP        ;∗∗ Следующий вызов −− из памяти программ
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/EXIT