Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72

Замена строчных и заглавных букв

29.10.2011, 19:28. Показов 2722. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите, пожалуйста, как осуществить замену строчных букв на заглавные и обратно, во введенной в программе строке. Вводятся англоязычные символы.
Вот пример кода, который навоял. Однако, конечный результат не выводится.
По правде говоря, половина кода написано интуитивно. если, что не так - откорректируйте, пожалуйста.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
title Демонстратор некоторых функций int 21 (com)
;---------------------------------------------
codesg  segment para 'code'
        assume cs:codesg, ds:codesg, ss:codesg, es:codesg
        org 100h
begin:
        call start
message db 'Введите Ваше имя: ', '$'
string  label  byte     ;Список параметров
symb    db 19           ;Максимальная длина
real    db ?                ;Реальная длина
all     db  20 dup (?),'$'  ; Введенные символы
 
start proc near
 
mov ah, 09h 
lea dx, message 
int 21h  
lea dx, string 
mov ah, 0ah 
int 21h 
mov cl,real 
mov ch,0
mov si,offset string+2
mov di,si
a1: lodsb
     cmp al,'a'
     jb a2
     cmp al,'a'
     jae a3
a3: add al,14h
a2: stosb
      loop a1
lea dx, string+2
mov ah, 09h
int 21h 
mov ah,4ch 
int 21h
start endp
codesg ends
end begin
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2011, 19:28
Ответы с готовыми решениями:

Чередование строчных и заглавных букв
Добрый день. Никак не могу продумать, как запилить код, чтобы он чередовал мой текст по правилу строчная-заглавная-строная-заглавная. Вот...

Чередование 3 строчных и 3 заглавных букв
Здравствуйте, дали задание чередования символов, 3 заглавных и 3 строчных. Я делал чередование 1 заглавный и 1 строчный. Может кто помочь?...

Строка: Осуществить замену строчных букв на заглавные и заглавных на строчные
вот мае задание, помогите пожалуйста ...... Ввести текст в байтовый массив. Осуществить замену маленьких букв на БОЛЬШИЕ, БОЛЬШИЕ на...

3
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
29.10.2011, 21:36
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
;   codesg  segment para 'code'
;   assume cs:codesg, ds:codesg, ss:codesg, es:codesg
    org     100h
start: 
    mov ah, 09h
    lea     dx, message
    int     21h
    lea     dx, string
    mov     ah, 0ah
    int     21h
    mov     cl, real
    xor     ch,ch
    mov     si,offset all
    mov     di,si
_loo:   lodsb
    cmp     al,'A'
    jb  cont
    cmp     al,'Z'
    jb  chng
 
    cmp     al,'a'
    jb  cont
    cmp     al,'z'
    ja  cont
chng:   xor al,20h
cont:   stosb
    loop    _loo
    mov byte ptr es:[di],'$'
    mov     dx, offset all
    mov     ah, 09h
    int     21h
    mov     ah,4ch
    int     21h
    message db 'Введите Ваше имя: ', '$'
string: label  byte     ;Список параметров
symb:   db 19           ;Максимальная длина
real:   db ?                    ;Реальная длина
all:    db  20 dup (?)      ; Введенные символы
 
    end start
Новую строку сам вставишь
1
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
29.10.2011, 21:52  [ТС]
У меня получился такой код:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
title Демонстратор некоторых функций int 21 (com)
;---------------------------------------------
codesg  segment para 'code'
        assume cs:codesg, ds:codesg, ss:codesg, es:codesg
        org 100h
begin:
        call start
message db 'Введите Ваше имя: ', '$'
string  label  byte     ;Список параметров
symb    db 19           ;Максимальная длина
real    db ?                    ;Реальная длина
all     db  20 dup (?),'$'      ; Введенные символы
 
start proc near
 
 
        mov     ah, 09h
        lea     dx, message
        int     21h
        lea     dx, string
        mov     ah, 0ah
        int     21h
        mov     cl, real
        xor     ch,ch
        mov     si,offset all
        mov     di,si
_loo:   lodsb
        cmp     al,'A'
        jb      cont
        cmp     al,'Z'
        jb      chng
 
        cmp     al,'a'
        jb      cont
        cmp     al,'z'
        ja      cont
chng:   xor     al,20h
cont:   stosb
        loop    _loo
        mov     byte ptr es:[di],'$'
        mov     dx, offset all
        mov     ah, 09h
        int     21h
        
        mov     ah, 09h
        lea     dx, string
        int     21h
        
        mov     ah,4ch
        int     21h
start endp
codesg ends
end begin
Однако, он не выводит новую строку. С чем это может быть связано?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
29.10.2011, 22:20
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
;       codesg  segment para 'code'
;        assume cs:codesg, ds:codesg, ss:codesg, es:codesg
    org 100h
start:
    mov ah, 09h
    lea dx, message
    int 21h
    lea dx, string
    mov ah, 0ah
    int 21h
    mov dx, offset crlf
    mov ah, 09h
    int 21h
 
    mov cl, real
    xor ch,ch
    mov si,offset all
    mov di,si
_loo:   lodsb
    cmp al,'A'
    jb  cont
    cmp al,'Z'
    jb  chng
 
    cmp al,'a'
    jb  cont
    cmp al,'z'
    ja  cont
chng:   xor al,20h
cont:   stosb
    loop    _loo
    mov byte ptr es:[di],'$'
    mov dx, offset all
    mov ah, 09h
    int 21h
    mov ah,4ch
    int 21h
    message db 'Введите Ваше имя: ', '$'
string: label   byte    ;Список параметров
symb:   db  19      ;Максимальная длина
real:   db  ?           ;Реальная длина
all:    db  20 dup (?)  ; Введенные символы
crlf:   db  0Dh, 0Ah, '$'
    end start
 

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2011, 22:20
Помогаю со студенческими работами здесь

Дана последовательность символов, заканчивающихся ".", определить каких латинских букв больше: заглавных или строчных
1. Дана последовательность символов, заканчивающихся ‘.’. Определить каких латинских букв больше: заглавных или маленьких.

Замена строчных букв на прописные
Доброго времени суток! В универе задали задание написать в Masm32 прогу, которая меняет малые буквы на большие. Практики особой нет,...

Замена строчных русских букв заглавными
Необходимо заменить все малые буквы в русских словах заглавными. Никак не могу разобраться, помогите пожалуйста

Замена строчных латинских букв на прописные
Здравствуйте мне нужно срочно разработать программу которая при вводе данных с клавиатуры в символьный файл, заменяет строчные латинские и...

Замена согласных строчных букв в строке на заглавные
замена всех букв на заглавные понимаю как, а вот как именно только согласные не доходит. подскажите что нужно сделать. TITLE CHANGE ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru