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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
'''−TRAILING''' — стандартное слово [[Каллисто]]. Определить длину строки без завершающих [[пробел]]ов.
'''−TRAILING''' — стандартное слово [[Каллисто]]. Определить длину строки без завершающих пробелов.
  −TRAILING      ( a u1 −− a u2 )                    Отсечь конечные пробелы.
  −TRAILING      ( a u1 −− a u2 )                    Отсечь конечные пробелы.
Команда ADR N −TRAILING сокращает значение N на число [[пробел]]ов между последним значащим символом и адресом ADR+N. Этот оператор может использоваться перед [[TYPE]] и особенно полезен при печати на старых принтерах, так как исключает холостые пробеги каретки.
Команда ADR N −TRAILING сокращает значение N на число пробелов между последним значащим символом и адресом ADR+N. Этот оператор может использоваться перед [[TYPE]] и особенно полезен при печати, так как исключает холостые пробеги каретки.


== Ввод слова −TRAILING ==
== Ввод слова −TRAILING ==
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши [[Клавиша -|{{Серая клавиша|−}}]]   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ×|{{Серая клавиша|×}}]] {{ШГ←}} [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша БП|{{Чёрная клавиша|БП}}]]
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши [[Клавиша -|{{Серая клавиша|−}}]]   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша ШГ влево|{{Чёрная клавиша|ШГ←}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша БП|{{Чёрная клавиша|БП}}]]


Для возврата в [[режим NUM]] нажмите [[Клавиша P|синюю клавишу {{Синяя клавиша|P}}]].
Для возврата в [[режим NUM]] нажмите [[Клавиша P|синюю клавишу {{Синяя клавиша|P}}]].
Строка 41: Строка 41:


== Реализация ==
== Реализация ==
<pre>
2386 ;#MinusTRAILING
2387 ; −TRAILING        ( a U1 −− a U2 )                    Отсечь конечные пробелы.
2388 ; Преобразует число литер U1 в строке, начинающейся с адреса a, в число U2, не включающее
2389 ; число пробелов, которые имеются в конце строки. Адрес a остаётся неизменным.
2390 ; Мы считаем, что дело происходит в области данных.
2391 LDTRAI:        .DB    9
2392                .TEXT  "−TRAILING"
2393                .DW    LDEC
2394 DTRAI:          .DW    JDTRAI
2395 JDTRAI:        RM3 M8 M5 KRM5
2396                1 EE 4 − KX>=09
2397                KRM8 M0 +/− KX<09
2398                − M1
2399 DTRAI1:        KRM1 32 −
2400                FX=0 DTRAI2
2401                FL0 DTRAI1
2402                CX M0
2403 DTRAI2:        RM0 KM8
2404                KGOTO9
</pre>
Реализация из SP-Forth 4.20:
<pre>
\ ================================================================
\ Строки
CODE -TRAILING ( c-addr u1 -- c-addr u2 ) \ 94 STRING
\ Если u1 больше нуля, u2 равно u1, уменьшенному на количество пробелов в конце
\ символьной строки, заданной c-addr и u1. Если u1 ноль или вся строка состоит
\ из пробелов, u2 ноль.
      OR EAX, EAX
      JZ SHORT @@1
      MOV EDX, EDI
      MOV EDI, [EBP]
      ADD EDI, EAX
      LEA EDI, -1 [EDI]
      MOV ECX, EAX
      A; B0 C, 20 C, \ MOV AL, # 20
      STD
      REPZ SCAS BYTE
      JZ SHORT @@2
      INC ECX
@@2:  MOV EAX, ECX
      MOV EDI, EDX
      CLD
@@1:  RET
END-CODE
</pre>
=== Советская реализация ===
Слово −TRAILING в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
Слово −TRAILING в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
<PRE>
<PRE>
Строка 133: Строка 83:
[[Категория:Стандартные слова]]
[[Категория:Стандартные слова]]
[[Категория:1994 STRING]]
[[Категория:1994 STRING]]
[[Категория:2012 STRING]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

Отменить Справка по редактированию (в новом окне)