Функция F получает 4 байта в регистре EAX. При этом содержимое региста EAX она не разрушает. Необходимо разместить между вызовами функции F некоторое количество инструкций, чтобы вызвать её со всем возможными перестановками байт регистра EAX. Порядок получения перестановок произвольный, к исходной перестановке возвращаться не нужно. Вызовы функции F не учитываются, считается только размер инструкций для получения перестановок. Код (Text): ;ABCD call F xcgh al,ah ;ABDC call F rol eax,8 ;BDCA call F xchg al,ah ;BDAC call F и так далее... call F писать ну нужно, в комментариях указывайте полученную после каждой инструкции перестановку. Ну и общий размер всех инструкций укажите.
twgt Нет, нужно получить все 24 перестановки ABCD ABDC ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD CADB CBAD CBDA CDAB CDBA DABC DACB DBAC DBCA DCAB DCBA но можно в любом порядке
Код (Text): mov eax,11223344h l0: call l2 call l1 call l1 l1: bswap eax l2: call l4 call l3 l3: bswap eax ror eax,8 l4: call l5 xchg ah,al l5: ; eax - читаем тут
Ну вобщем да. Может даже можно сократить одну команду (получив правда менее красивый порядок). Сорри что ответом тянул =))