UPPER: различия между версиями

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


== Реализация ==
== Реализация ==
<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 было [[примитив]]ом, вот его определение:
В FORTH ИТЭФ слово UPPER было [[примитив]]ом, вот его определение:
<PRE>
<PRE>
Строка 29: Строка 59:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Фортовские слова]]
[[Категория:Примитивы]]
[[Категория:Примитивы]]
[[Категория:Работа с памятью Каллисто]]
[[Категория:Работа с памятью Каллисто]]

Текущая версия от 17:23, 9 ноября 2017

UPPER — фортовское слово Каллисто. Делает все буквы в строке заглавными.

UPPER          ( a u −− )                           Перевести в верхний регистр u литер по адресу a.

Перевести строку символов по адресу a длиной u в верхний регистр. Литеры, не являющиеся строчными буквами, сохраняют свои значения.

Ввод слова UPPER[править]

В режиме ЛАТ последовательно нажмите клавиши  3   6   6   ИП   × 

Реализация[править]

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

Советская реализация[править]

В FORTH ИТЭФ слово UPPER было примитивом, вот его определение:

            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

Ссылки[править]


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.