- 1
- 2
- 3
- 4
- 5
- 6
- 7
lea 0x0(%esi),%esi
sub $0x1,%eax
cmp $0xffffffff,%eax
je 0x8048e07
mov (%ecx,%eax,4),%esi
test %esi,%esi
je 0x8048df8
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+240
lea 0x0(%esi),%esi
sub $0x1,%eax
cmp $0xffffffff,%eax
je 0x8048e07
mov (%ecx,%eax,4),%esi
test %esi,%esi
je 0x8048df8
Чудеса оптимизации -О3 на gcc 4.4
(код в интелловской аннотации, сначала источник, потом назначение)
+238
JMP $END
+237
mov ebx,eax
xor eax,ebx
mov eax,0
cmp eax,ebx
je metka1
+236
evalLOG:
JB kod.7, log8
JB kod.6, log7
JB kod.5, log6
JB kod.4, log5
JB kod.3, log4
JB kod.2, log3
JB kod.1, log2
JB kod.0, log1
Mov log, #0
JMP exiteval
log8:
Mov log, #8
JMP exiteval
log7:
Mov log, #7
JMP exiteval
log6:
Mov log, #6
JMP exiteval
log5:
Mov log, #5
JMP exiteval
log4:
Mov log, #4
JMP exiteval
log3:
Mov log, #3
JMP exiteval
log2:
Mov log, #2
JMP exiteval
log1:
Mov log, #1
exiteval:
Ret
Нахождение логарифма восьмибитного числа с точностью до целых на ассемблере x51.
+234
00614A77 |. 8BF0 MOV ESI,EAX
00614A79 |. BB 01000000 MOV EBX,1
00614A7E |. EB 01 JMP SHORT 00614A81
00614A80 |> 43 /INC EBX
00614A81 |> 3BF3 CMP ESI,EBX
00614A83 |. 7C 07 |JL SHORT 00614A8C
00614A85 |. 807C1F FF 20 |CMP BYTE PTR DS:[EDI+EBX-1],20
00614A8A |.^ 76 F4 \JBE SHORT 00614A80
Оптимизация компилятора
+232
echo "Для разлагинивания почистите куки браузером.<br>";
Взяли новичка на испытательный срок. При нажатии на кнопку "Выход" наблюдаю данную надпись.
+232
function get_user_balls($user_id)
{
//blah blah blah
}
function destroy_user_balls($user_id)
{
//blah blah blah
}
Никогда не догадаетесь, что это за функции. Ржал до слез. Готовы? Возвращает кол-во баллов, набранных пользователем и очищает их.
+231
cmp [wparam],BN_CLICKED shl 16 + ID_HOTKEY
je .sethotkey
jmp .processed
.sethotkey:
O_o
+230
org VECTORS
dw metka1
org 3feh
dw start
org 200h
start:
lda #0
sta 0E0h
sta 0E1h
sta 0E2h
clra
lda #0f0h
sta 4
bset 5,0008h
cli
jmp $
metka1:
rol 0
bcs metka2
lda #070h
sta 4
lda #1
sta 0E0h
jmp metka3
metka2:
lda #0f0h
sta 4
lda 0E0h
cmp 0E2h
beq metka3
lda #0
sta 0E0h
lda 0E1h
inca
sta 0E1h
jmp metka4
metka3:
lda 0E1h
inca
sta 0E1h
metka4:
bset 2,0008h
rti
END
типовик
+229
;uint64_t foo(uint32_t x, uint64_t y) { return x*y; }
sub esp, 0×8
mov edx, [esp+0x14]
mov ecx, [esp+0xc]
mov eax, [esp+0x10]
mov [esp+0x4], esi
mov esi, edx
imul esi, ecx
mul ecx
mov [esp], ebx
mov ebx, [esp]
add esi, edx
mov edx, esi
mov esi, [esp+0x4]
add esp, 0×8
ret
оптимизированое умножение - gcc 4.2.4