Обмен значений двух четырехбайтовых переменных без использования xchg - Assembler
Формулировка задачи:
Добрый вечер!
Подскажите, пожалуйста, как можно реализовать обмен значений двух
четырехбайтовых переменных без использования xchg?
Спасибо!
Решение задачи: «Обмен значений двух четырехбайтовых переменных без использования xchg»
textual
Листинг программы
mov eax,12345678h mov ebx,12345678h xor eax,ebx; eax=0 ebx=12345678h xor ebx,eax; eax=0 ebx=12345678h xor eax,ebx; eax=12345678h ebx=12345678h ;-------------------------------------- mov eax,12345678h mov ebx,87654321h xor eax,ebx; eax=95511559h ebx=87654321h xor ebx,eax; eax=95511559h ebx=12345678h xor eax,ebx; eax=87654321h ebx=12345678h
Объяснение кода листинга программы
- mov eax,12345678h Перемещение значения 12345678 в регистр eax.
- mov ebx,12345678h Перемещение значения 12345678 в регистр ebx.
- xor eax,ebx; eax=0 ebx=12345678h Операция исключающего ИЛИ (XOR) между eax и ebx. Результат 0 в eax и исходное значение ebx (12345678) в ebx.
- xor ebx,eax; eax=0 ebx=12345678h Операция исключающего ИЛИ (XOR) между ebx и eax. Результат 0 в eax и исходное значение ebx (12345678) в ebx.
- xor eax,ebx; eax=12345678h ebx=12345678h Операция исключающего ИЛИ (XOR) между eax и ebx. Результат 12345678 в eax и 12345678 в ebx.
- mov eax,12345678h Перемещение значения 12345678 в регистр eax.
- mov ebx,87654321h Перемещение значения 87654321 в регистр ebx.
- xor eax,ebx; eax=95511559h ebx=87654321h Операция исключающего ИЛИ (XOR) между eax и ebx. Результат 95511559 в eax и 87654321 в ebx.
- xor ebx,eax; eax=95511559h ebx=12345678h Операция исключающего ИЛИ (XOR) между ebx и eax. Результат 95511559 в eax и 12345678 в ebx.
- xor eax,ebx; eax=87654321h ebx=12345678h Операция исключающего ИЛИ (XOR) между eax и ebx. Результат 87654321 в eax и 12345678 в ebx.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д