Редактирование:
.S
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == По общепринятому в Форте соглашению вершина [[Стек данных|стека]] находится справа. Первым распечатывается дно [[Стек данных|стека]], вершина [[Стек данных|стека]] выводится на [[индикатор]] последней. <pre> 3925 ;#dS 3926 ; .S ( −− ) Напечатать стек, вершина справа. 3927 LSTY: .DB 2 3928 .TEXT ".S" ; ( −− ) 3929 .DW LDUMP 3930 STY: .DW CALL, DEPTH, XFOR,STY3 ; Распечатать всё содержимое стека, оставив стек без изменений. 3931 STY1: .DW I,ONEM,PICK, FDOT, XNEXT,STY1 3932 STY3: .DW EXIT </pre> Реализации из SP-Forth 4.20: <pre> : .SN ( n --) \ Распечатать n верхних элементов стека >R BEGIN R@ WHILE SP@ R@ 1- CELLS + @ DUP 0< IF DUP U>D (D.) TYPE <# S>D #(SIGNED) #> TYPE SPACE ELSE . THEN R> 1- >R REPEAT RDROP ; … : .S ( -- ) \ 94 TOOLS \ Скопировать и показать значения, находящиеся на стеке данных. Формат зависит \ от реализации. \ .S может быть реализовано с использованием слов форматного преобразования \ чисел. Соответственно, он может испортить перемещаемую область, \ идентифицируемую #>. DEPTH 0 MAX .SN ; </pre> <pre> : s. SP@ S0 @ CELL - 2DUP - DUP 4 = IF DROP 2DROP ." Stack is empty" CR EXIT THEN 4 > IF 2DROP ." Stack is underflowed" CR EXIT THEN DO I @ . CELL NEGATE +LOOP CR ; </pre> === Советская реализация === В ядре ФОРТ-ЕС слово .S называлось S. Вот его описание и определение: <PRE> S. * -> РАСПЕЧАТАТЬ НИ ТЕРМИНАЛЕ СТЕК ДАННЫХ 42 Экран номер 42 ( 09.09.86 DUMP SNAPSTK S. R. ) : SNAPSTK RDROP CR ". ." , ВСЕГО ЗНАЧЕНИЙ " 2DUP SWAP - 2/ DUP . 0 SWAP < IF ." (ВЕРШИНА СПРАВА)" CR 2- DO I @ . -2 +LOOP ELSE 2DROP THEN ; : S. ( ->) SP@ S0 @ " СТЕК ДАННЫХ" SNAPSTK ; </PRE> Определение слов S. и STY в FORTH ИТЭФ: <PRE> HEAD 202Q,'S',256Q,SPOT,$COL ; S. DW DUBL,UDOT,SEMI ... HEAD 203Q,'ST',331Q,STY,$COL ; STY DW DEPTH,DDUP,ZBRAN,STY3-$,ZERO,XDO STY1: DW I,EIGHT,$MOD,ZEQU,ZBRAN,STY2-$,CR STY2: DW I,ONEP,PICK,LIT,7,UDOTR,XLOOP,STY1-$ STY3: DW SEMI </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице