Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Disaster7
0 / 0 / 1
Регистрация: 16.08.2015
Сообщений: 17
1

Изменение букв в строке

20.11.2015, 21:07. Просмотров 883. Ответов 1
Метки нет (Все метки)

Замена всех букв 'с' в строке на 'd'
Заменять то он заменяет, но выводит измененную строку неправильно, например, была строка "dffdkk" он выводит "c fc k", т.е. после буквы, которую он заменил ставит пробел. Не могу понять почему так происходит
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
.MODEL SMALL
.STACK 200h
.DATA
words db 100,?,100 dup('$')
old_symbol db "a"           ;заменяемый символ
new_symbol db "b"           ;на что заменяем
.CODE
 
START:
        
        mov     ax,@Data      
        mov     ds,ax 
        mov     es,ax
        
        
        mov      ah,0ah ;функция, считывающая из stdin в буфер  
        lea      dx,words          
        int      21h 
        
        xor     ax,ax
        mov     words+1,0ah
        
        
        
        mov      cx,100;количество повторов/регистр-счетчик.
        mov      bx,OFFSET words+1;индекс приемника (получателя)
        cycle:          ;цикл 
            cmp byte ptr [bx],'c';  сравнить содержимое двух областей памяти, размером в один байт или в одно слово;
            je       change ;Если равно
            next:
            inc      bx     ;bx++
    
        loop    cycle   ;повторить цикл
        jmp     exit
        
                ;заменяем букву 'c' на 'd' и переходим обратно к циклу
        change:
        mov     [bx],'d'
        jmp     next
        
        exit:
        mov ah,09h;Функция DOS 09h вывода на экран  
        mov dx,OFFSET words+1
        int 21h 
        mov AH,4Ch         ;Функция 4Ch завершения программы 
        int 21h  
        
       
END START
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2015, 21:07
Ответы с готовыми решениями:

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

Подсчитать в строке число букв А и В, если букв А больше, чем В, то удалить в строке все символы В
Здравствуйте, помогите пожалуйста решить задачу с помощью процедур "Подсчитать в строке число букв...

Подсчитать в строке число букв А и В, если букв А больше, чем В, то удалить в строке все символы В
Помогите пожалуйста! Нужно подсчитать в строке число букв А и В, если букв А больше, чем В, то...

Подсчитать в строке число букв a и b, если букв а больше b, то удалить в строке все символы b
Помогите, пожалуйста, сделать задачу: Подсчитать в строке число букв a и b, если букв а больше b,...

Изменение маленьких букв на большие и наоборот
Задача: Написать на языке ассемблер exe-программу, которая выведет на экран "Input string". После...

1
Constantin Cat
10547 / 1465 / 418
Регистрация: 28.02.2015
Сообщений: 2,975
Завершенные тесты: 1
20.11.2015, 22:24 2
Лучший ответ Сообщение было отмечено Disaster7 как решение

Решение

Assembler
1
mov byte ptr[bx],'d'
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2015, 22:24

Изменение маленьких букв на большие и наоборот
Задача: Написать на языке ассемблер com-программу, которая выведет на экран "Input string". После...

Поиск букв в строке
Доброго времени суток. Нужно ввести английское предложение. Найти каких букв в веденной строке...

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.