Редактирование:
DEPTH
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == <pre> 3907 ;#DEPTH 3908 ; DEPTH ( −− U ) Глубина стека. U −− количество значений на стеке данных до исполнения DEPTH. 3909 LDEPTH: .DB 5 3910 .TEXT "DEPTH" ; ( −− глубина ) 3911 .DW LCOPY ; Положить на стек полное количество чисел, хранившихся на стеке до исполнения DEPTH 3912 DEPTH: .DW CALL, SZERO,UAT, SPAT,ONEP,SUB, EXIT </pre> Реализации из SP-Forth 4.20: <pre> : DEPTH ( -- +n ) \ 94 \ +n - число одинарных ячеек, находящихся на стеке данных перед \ тем как туда было помещено +n. SP@ S0 @ - NEGATE 1 CELLS / \ значение может быть отрицательным, поэтому '>CELLS' вместо '/' нельзя ; </pre> <pre> CODE FDEPTH \ * LEA EBP, -4 [EBP] MOV [EBP], EAX FSTSW EAX SHR EAX, # 0B AND EAX, # 7 JZ SHORT @@1 NEG EAX LEA EAX, 8 [EAX] @@1: RET END-CODE \ Стек завернут в кольцо!!! \ Нумерация регистров в сопроцессоре, видимо, следующая (experimental) \ 0 7 6 5 4 3 2 1 , где 0 - дно стека \ FSTSW возвращает номер регистра \ Пришлось это обработать... </pre> === Советская реализация === Юрий Семёнов приводит следующее определение слова DEPTH (стр. 151): : DEPTH S0 @ SP@ 2+ - 2/ ; Описание и определение слова DEPTH в ядре ФОРТ-ЕС: <PRE> DEPTH ->+N КОЛИЧЕСТВО ЗНАЧЕНИИ НА СТЕКЕ ДО +N 20 Экран номер 20 ( 31.03.86 SP@ SP! RP@ RP! 2/ 2* 2@ 2! DEPTH ) : DEPTH ( ->+N) SP@ S0 @ SWAP - 2/ ; </PRE> Определение слова DEPTH в FORTH ИТЭФ: <PRE> HEAD 205Q,'DEPT',310Q,DEPTH,$COL ; DEPTH DW SZERO,AT,SPAT,TWOP,SUB,DIV2,SEMI </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице