UPPER: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) |
||
(не показаны 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
Ссылки[править]
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |