Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Alexey Berezin 113 may 6, 2010
- ;в тексте больше 3 латинских букв
- ;1)Заменить каждую заглавную латинскую букву на заглавную букву, симметричную ей в алфавите (A Z, B Y, ...).
- ;2) Перевернуть текст, не используя дополнительную память.
- include io.asm ;подключение операций ввода-вывода
- stack segment stack
- db 256 dup (?)
- stack ends
- data segment
- ; место для переменных и констант
- N equ 200
- Str db N
- data ends
- code segment 'code'
- assume ss:stack, ds:data, cs:code
- ; место для описания процедур
- CHECK proc ; Di- length,
- mov Cx, DI
- xor SI,SI
- xor Dx,Dx
- JCXZ cxzero
- L1: mov DL, Str[SI]
- inc SI
- cmp DL, 'A'
- JB con1
- cmp DL,'z'
- JA con1
- cmp DL,'Z'; from A to Z
- JBE add1
- cmp DL,'a'; from a to z
- JAE add1
- JMP con1
- add1: inc DH ;dh-number of Eng letters
- con1:
- loop L1
- cxzero: mov AL, 1
- cmp DH,3
- JG EN1
- inc AL
- EN1:
- mov AH,0
- outint Ax
- ret
- CHECK endp
- STR_F1 proc
- ;if x in {UPPER CASE} then x->'Z'-x+'A'
- mov Cx, DI
- xor SI,SI
- L2: mov DL, Str[SI]
- cmp DL, 'A'
- JB con2
- cmp DL,'Z'
- JA con2
- neg DL
- ADD DL,'Z'+'A'
- mov Str[SI], DL
- con2: inc SI
- loop L2
- ret
- STR_F1 endp
- STR_F2 proc
- push DI
- dec DI
- xor SI,SI
- L3: cmp SI,DI
- JNL con3
- mov DL, Str[SI]
- mov DH, Str[DI]
- mov Str[SI], DH
- mov Str[DI], DL
- dec DI
- inc SI
- JMP L3
- con3:
- pop DI
- ret
- STR_F2 endp
- start:
- mov Ax,data
- mov Ds,Ax
- ;input text
- mov Cx, N
- xor DI,DI
- rd1: inch AL
- cmp Al,'.'
- JE ChkStr
- mov Str[DI],AL
- inc DI
- loop rd1
- ChkStr: newline ; to comment
- outword DI;to comment
- newline;
- mov CX,DI
- JCXZ cxzero2
- xor SI,SI
- wr1:outch Str[SI]
- inc SI
- loop wr1
- newline
- cxzero2:
- ;ChkStr
- call CHECK
- cmp AL, 1
- jne sol2
- call STR_F1
- jmp next
- sol2: call STR_F2
- next:
- newline
- mov Cx,DI
- JCXZ cxzero3
- xor SI, SI
- for3: outch Str[SI]
- inc SI
- loop for3
- cxzero3: newline
- finish
- code ends
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement