Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
kulbaeva
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 9
1

Заменить во вводимом тексте каждое слово "ЭВМ" словом "машина"

25.11.2012, 21:12. Просмотров 1476. Ответов 3
Метки нет (Все метки)

Здравствуйте. Поможете разобраться с ниже приведенной задачей:
Заменить во вводимом тексте каждое слово « ЭВМ » словом « машина

Здесь bx количество вводимых значений

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
xor bx,bx
xor si,si
xor di,di
cld
lea si,men
lea di,women
mov ah,01h
m1:int 21h
stos w       
inc bx
repne scas w
cmp cx,0
je m1
dec di
dec si
mov al,'women'
m2:stos w
loop m2
moov cx,bx
lea di,men
lea si,women
mov ah,02h
m3:lods w
mov dx,ax
unt 21h
loop m3
что скажите? правильно? или как можно решить иначе?

Добавлено через 2 минуты
извините за ошибку, здесь слова не эвм и машина, а men и vomen.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 21:12
Ответы с готовыми решениями:

Есть строка. Нужно сделать так, чтобы "re" и "not" заменялись на "***".
Есть строка. Нужно сделать так, чтобы "re" и "not" заменялись на "***". Data...

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

Изъять слова, которые имеют префикс "re", "not", "be"
Заданы символьная строка. Слова и идентификаторы разделяются хотя бы одним...

Необходимо строку тип ""str1" "str2"",0 преобразовать в строку типа
Необходимо строку тип ""str1" "str2"",0 преобразовать в строку типа "str2",0...

Дана строка "ababab", из этого слова надо получить "aaa"
Собственно сабж. Дана строка "ababab", надо удалить буквы "b" и получить слово...

3
AFP
649 / 336 / 37
Регистрация: 04.04.2012
Сообщений: 887
26.11.2012, 12:19 2
Вводим текст, где есть слово(а) men, после нажатия клавиши Enter, меняем слово(а) men на vomen?
0
kulbaeva
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 9
26.11.2012, 17:52  [ТС] 3
да, получается так)
0
AFP
649 / 336 / 37
Регистрация: 04.04.2012
Сообщений: 887
26.11.2012, 20:01 4
Наверное 'man' и 'woman'.
Везде в строке 'man' заменяется на 'woman'.
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
54
55
56
57
58
59
60
61
;TASM, DOS, COM-файл
;tasm.exe /m
;tlink.exe /t /x
;
.model tiny
.code
.386
ORG 100h
START:
    mov ah,10   ;ввести строку
    lea dx,string   ;
    int 21h
    mov si,dx   ;сохранить адрес строки
 
    mov ah,2    ;вывести символ
    mov dl,10   ;перевод строки
    int 21h
 
    xor cx,cx   ;обнуляем счетчик длины строки
 
    inc si      ;выходим на число введенных символов
    mov cl,[si] ;число введенных символов в CX для циклов
    inc si      ;установить SI на первый символ строки
    lea di,strRez   ;строка - результат
m1:
    lodsb       ;читаем символ из [SI] в AL
    mov bl,al
    shl ebx,8   ;сдвиг символа влево
    cmp ebx,6D616E00h ;это слово 'man'?
    jnz short m2    ;нет, записать символ в строку - результат
 
;Слово найдено
    xor ebx,ebx ;очистка регистра для следующего слова
    sub di,2    ;DI на первый символ слова 'man'
 
push si cx      ;сохранить адрес строки и ее счетчик
    mov cx,5
    lea si,woman    ;скопировать слово 'woman' вместо 'man'
    rep movsb
pop cx si
    jmp short m3    ;на следующий символ исходной строки
m2:
    stosb       ;запись символа в строку - результат
m3:
    loop m1     ;повторять цикл, пока счетчик символов не CX=0
 
    mov byte ptr [di],'$' ;записать в конце строки - результата
 
    mov ah,9    ;вывести строку - результат на экран
    lea dx,strRez
    int 21h
 
    mov ah,0    ;ждать нажатой клавиши
    int 16h
;
    ret     ;выход из программы
 
woman   db  'woman'
string  db 255,256 dup (?) ;для вводимой строки
strRez:            ;для строки - результата
    end start
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2012, 20:01

Как реализовать рекурсию через "call" и "ret"?
kak realizovat rekursiu 4erez "call" i "ret"? nujno predstavit naturalnoe...

Рассматривая массив из 8 пятиразрядных слов, найти "исключающее или" всех 8 слов для выражения "10101"
У меня дан массив из 5 байт. Рассматривая его как массив из 8 пятиразрядных...

Занести в стек "x" и "y". Внести "y" в bx (внести "x" в bx)
Препод задолбал своими вопросами, приходится снова просить помощи у вас. Вот...


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

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

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