Страницы

Поиск по вопросам

суббота, 1 июня 2019 г.

Переставить первый и третий байт в EAX, а четвертый обнулить

Пример: из 0xAABBCCDD получить 0x00DDCCBB
Решил задачу так:
MOV EAX, [EAX]; //инициализация MOV ECX, EAX; SHR ECX, 16 MOV DH, $00; MOV DL, AL; SHL EDX, 16; MOV DH, AH; MOV DL, CL; MOV EAX, EDX;
Можно ли улучшить этот код?
ОС: win32


Ответ

MOV EAX, [EAX] ; EAX=0xAABBCCDD XOR EBX, EBX ; BL=0x00 XCHG AH, BL ; EAX=0xAABB00DD BL=0xCC ROR EAX, 16 ; EAX=0x00DDAABB MOV AH, BL ; EAX=0x00DDCCBB

Комментариев нет:

Отправить комментарий