Поменять местами четные и нечетные элементы массива - Assembler
Формулировка задачи:
Здравствуйте! помогите разобраться, нужно поменять местами четные и нечетные элементы массива, результат записать в тот же массив, последний элемент массива 0, когда он встречается в цикле - выходим, вот наброски:
jmp @start @ data_: @mas: dw 1, 2, 3, 4, 5, 6, 0 @start: lea eax, [esp - 4] push eax push $00000040 push offset @start sub dword ptr [esp], offset @data_ push offset @data_ call VirtualProtect xor eax, eax xor edx, edx lea esi, @mas mov ecx, 7 @sm_loop: mov eax, esi mov edx, 2 add edx, eax xchg edx, eax mov [esi], edx mov [edx], eax loop @sm_loop
Решение задачи: «Поменять местами четные и нечетные элементы массива»
textual
Листинг программы
jmp @start @ data_: @mas: dw 1, 2, 3, 4, 5, 6, 0 @start: lea esi, @mas @1: lodsw test ax,ax jz exit;последний элемент массива 0, когда он встречается в цикле - выходим xchg ax,[esi] mov [esi-2],ax add esi,2 jmp @1 exit: ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д