Переставить в обратном порядке символы между первым и последним вхождением заданного символа - Assembler
Формулировка задачи:
переставить в обратном порядке символы между первым и последним вхождением заданного символа в исходной строке, если этот символ не встречается не менее двух раз.
Ребята, помогите кто-нибудь пож-та=(
Решение задачи: «Переставить в обратном порядке символы между первым и последним вхождением заданного символа»
textual
Листинг программы
format PE console include 'win32a.inc' mov edi,sk mov al,[cfnd] mov ecx,[qcsk] cld repne scasb jnz mNotFound push edi cld repne scasb jnz mNotFound pop esi dec edi mov ecx,edi sub ecx,esi shr ecx,1 cmp ecx,0 je mNN dec edi cld mExchange: lodsb mov ah,[edi] xchg [esi-1],ah xchg [edi],al dec edi loop mExchange mNN: mNotFound: invoke ExitProcess,0 cfnd db 'A' sk db 'abcdefghijAklmnopqrsAtuvwxyz' qcsk dd $-sk include 'API\kernel32.inc' data import library kernel32,'KERNEL32.DLL' end data
Объяснение кода листинга программы
Список элементов:
- Переменная
edi
используется для хранения индекса текущего симвома в строке. - Переменная
al
используется для хранения текущего символа. - Переменная
ecx
используется для хранения количества символов, которые нужно переставить. - Переменная
esi
используется для хранения индекса последнего символа, который нужно переставить. - Переменная
ecx
используется для хранения размера строки после перестановки символов. - Переменная
edi
используется для хранения индекса первого символа, который нужно переставить. - Переменная
eax
используется для временного хранения символа. - Переменная
edi
используется для уменьшения индекса на единицу. - Переменная
ecx
используется для хранения количества символов, которые нужно переставить. - Переменная
esi
используется для увеличения индекса на единицу. - Переменная
eax
используется для временного хранения символа. - Переменная
eax
используется для обмена символами. - Переменная
edi
используется для уменьшения индекса на единицу. - Переменная
ecx
используется для хранения количества символов, которые нужно переставить. - Переменная
esi
используется для увеличения индекса на единицу. - Переменная
eax
используется для временного хранения символа. - Переменная
eax
используется для обмена символами. - Переменная
edi
используется для уменьшения индекса на единицу. - Переменная
ecx
используется для хранения количества символов, которые нужно переставить. - Переменная
esi
используется для увеличения индекса на единицу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д