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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
'''UPPER''' — фортовское слово [[Каллисто]]. Делает все буквы в строке заглавными.
'''UPPER''' — стандартное слово [[Каллисто]].
UPPER          ( a u −− )                          Перевести в верхний регистр u литер по адресу a.
 
Перевести строку символов по адресу a длиной u в верхний регистр. Литеры, не являющиеся строчными буквами, сохраняют свои значения.
Перевести строку символов в верхний регистр.


== Ввод слова UPPER ==
== Ввод слова UPPER ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша ×|{{Серая клавиша|×}}]]
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша ×|{{Серая клавиша|×}}]]
== Реализация ==
<pre>
2406 ;#UPPER
2407 ; UPPER            ( a u −− )                          Перевести в верхний регистр u литер по адресу a.
2408 LUPPER:        .DB    5
2409                .TEXT  "UPPER"
2410                .DW    LDTRAI
2411 UPPER:          .DW    JUPPER                  ; Перевести строку литер в верхний регистр.
2412 JUPPER:        RM3 M8 1 + MA 1 + M3
2413                KRM8 M0 +/−  KX<09
2414                KRMA 10001 −  KX>=09  M5
2415 UPPERL:        KRM5
2416                97 −  PX>=0 UPPER2              ; 'a'
2417                26 −  PX>=0 UPPER3              ; 'z'−96
2418                37 −  PX>=0 UPPER2              ; 'а'−123
2419                16 −  PX>=0 UPPER4              ; 'п'−159
2420                48 −  FX>=0 UPPER2              ; 'р'−176
2421                16 −  FX>=0 UPPER6              ; 'я'−223
2422                1 −  FX=0 UPPER2                ; 'ё'−241
2423                240  GOTO UPPER5                ; 'Ё'
2424 UPPER6:        160  GOTO UPPER7                ; 'Р'+16
2425 UPPER4:        144                            ; 'А'+16
2426                .DB 0f9H                        ; PX>=0 aka PGOTO UPPER7, пропустить 2 шага
2427 UPPER3:        91                              ; 'A'+26
2428 UPPER7:        +
2429 UPPER5:        PKM05
2430 UPPER2:        PFL0 UPPERL
2431 UPPERR:        KGOTO9
</pre>
=== Советская реализация ===
В FORTH ИТЭФ слово UPPER было [[примитив]]ом, вот его определение:
<PRE>
            HEAD    205Q,'UPPE',3220,UPPER              ; UPPER
            POP  CX
            POP  BX
  $COMP:  CMP  BYTE PTR [BX],  141Q
            JL  OFLIM
            CMP  BYTE PTR [BX],  172Q
            JG  OFLIM
            AND  [BX],  177737Q
  OFLIM:  INC  BX
            LOOP $COMP
            NEXT
</PRE>
== Ссылки ==
* {{Исходник|UPPER|UPPER}}




Строка 59: Строка 10:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Фортовские слова]]
[[Категория:Примитивы]]
[[Категория:Примитивы]]
[[Категория:Работа с памятью Каллисто]]
[[Категория:Работа с памятью Каллисто]]
[[Категория:Слова Каллисто без стековых диаграмм]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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