Изменить порядок букв в строке - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте . Есть такая задача: дана строка с восьми слов , в словах с парным номером нужно изменить порядок букв на противоположный . Вот я пытался что-то сделать , но у меня просто меняет порядок букв во всех словах строки :
.686             ; директива визначення типу мікропроцесора
.model flat,stdcall  ; завдання лінійної моделі пам’яті
                     ; та угоди ОС Windows
option casemap:none  ; відмінність малих та великих літер
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\fpu.inc
include \masm32\include\user32.inc        ; для MessageBox
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
BSIZE equ 30 
.data
mas1 db 'abc wer tyd oop yhf tdd kjs llj'
mas2 db 31 dup(0)
cWritten DWORD ?
stdout DWORD ?
.code
_Start:
cld   ;напрям- вгору
lea edi,mas1 ;адреса 1-го масиву
mov esi,0
mov edx,0
mov al,' '   ;знак пропуска
mov ecx,21
push ecx
jmp m2
m4:mov ecx,8   ;счётчик слов
m1:
mov ah,[ebx]         ;заносим в ah последний символ массива
mov mas2[edx],ah     ;сохраняем этот символ
inc edx              ;увеличиваем индекс
dec ebx              ;переходим на следующий элемент
cmp [ebx],esi
dec ecx
jnz m1
m2:
pop ecx
repne scasb         ;ищем пропуск в массиве
mov ebx,edi         ;сохраняем в ebx место, где был найден пропуск
dec ebx             ;ebx-1
push ecx
dec ecx
jnz m4
 
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov stdout,eax
invoke WriteConsoleA,stdout,ADDR mas2,sizeof mas2+1,ADDR cWritten,0
 
push 1800h
call Sleep                  ; API-функция задержки изображения
 
invoke ExitProcess,0
end _Start
Так всё работает , выводит правильно. Но я ума не приложу , как поменять порядок букв именно в словах с парным номером ( Помогите , пожалуйста , с этой задачей .Заранее спасибо Вам !

Решение задачи: «Изменить порядок букв в строке»

textual
Листинг программы
lea edi,mas1+4  ;адреса 1-го слова

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы