Страницы

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

пятница, 13 марта 2020 г.

Переставить первый и третий байт в 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
    


Ответы

Ответ 1



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

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

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