August 27th, 2009

Наблюдение кодокопательское

В ядре 64-разрядной висты обнаружился почти классический Duff device, даже несколько усовершенствованный - учитываются длины машинных команд, делающих отдельные итерации:
4C 8D 1D 79 00 00 00 lea   r11, loc_140054E20
4C 2B D8             sub   r11, rax
41 FF E3             jmp   r11
66 66 90             align 10h
48 8B 46 70          mov   rax, [rsi+70h]
48 89 47 70          mov   [rdi+70h], rax
48 8B 46 68          mov   rax, [rsi+68h]
48 89 47 68          mov   [rdi+68h], rax
48 8B 46 60          mov   rax, [rsi+60h]
............................................
48 89 47 18          mov   [rdi+18h], rax
48 8B 46 10          mov   rax, [rsi+10h]
48 89 47 10          mov   [rdi+10h], rax
48 8B 46 08          mov   rax, [rsi+8]
48 89 47 08          mov   [rdi+8], rax
loc_140054E20:                          

Слева бинарные коды команд, справа - псевдоассемблер, как в IDA.