Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2018, 21:23   #1
Artemka758
 
Регистрация: 01.05.2018
Сообщений: 5
По умолчанию Поменять местами слова в строке

Дан текст, состоящий из 6 слов по 8 символов, разделенных пробелом. Переставить слова в тексте так, чтобы каждое следующее слово начиналось с той буквы, на которую закончилось предыдущее. Первое слово оставить на месте.
Не выводит правильный результат, в чем моя ошибка??

.DATA
str1 db 'Bkjhdsda kdhjsiye anljksfk easdsanx masdjooiu xhlihism','$'
len equ $-str1
str2 db len dup(?)
.code
assume ds:@data, es:@data
main:
mov ax,@data
mov ds,ax
mov es,ax

lea si,str1
call vivod
lea di,str2
mov cx,5
cikl:
mov al,[di-2]
push di
push cx
mov cx,len-9
lea di,str1+9
@b:
repne scasb
cmp byte ptr [di],20h
jne @f
loop @b
@f:
dec di
mov si,di
pop cx
pop di
loop cikl
jmp exit

vivod:
mov ah,9
int 21h

exit:

mov ah,09h
int 21h

mov ax,4c00h
int 21h

end main
Artemka758 вне форума Ответить с цитированием
Старый 01.05.2018, 22:07   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Artemka758 Посмотреть сообщение
в чем моя ошибка??
..в том, что программа заканчивается, ещё не начавшись - call vivod и сразу exit
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 01.05.2018, 22:13   #3
Artemka758
 
Регистрация: 01.05.2018
Сообщений: 5
По умолчанию

почему тогда результат дважды повторяется?
первое повторение это как должно быть предложение, а второе должно быть изменено
хорошо, изменил, по другому но вывод тот же
Изображения
Тип файла: jpg Безымянный.jpg (13.0 Кб, 122 просмотров)
Artemka758 вне форума Ответить с цитированием
Старый 01.05.2018, 22:54   #4
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Artemka758 Посмотреть сообщение
почему тогда результат дважды повторяется?
поставь ret перед exit
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 02.05.2018, 15:39   #5
Artemka758
 
Регистрация: 01.05.2018
Сообщений: 5
По умолчанию

Все равно не меняются слова как надо
Artemka758 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять местами слова в ячейке Нюни Microsoft Office Excel 28 05.12.2017 11:28
Поменять местами слова Kot070 Microsoft Office Access 5 29.12.2015 20:43
в строке поменять 1 и последнее слово местами. Программа есть только нужно сделать всё в 1 строке lect111 Паскаль, Turbo Pascal, PascalABC.NET 0 04.12.2012 15:47
поменять соседние слова местами alex(21) Общие вопросы C/C++ 3 20.02.2011 16:28
Поменять слова в строке местами fen1ksss Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 28.11.2010 22:25