- 1
- 2
fstp qword [tmp]
fild qword [tmp]
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+225
fstp qword [tmp]
fild qword [tmp]
суровое округление через память
+217
mov ebx, [sKey]
mov ecx, 31
l9:
;----------loop------------
fprem
shr ebx,1
jnc if9
.......
if9:
fmul st0,st0
;----------loop------------
loop l9
реабилитируюсь за пост несвежего, но смешного говна немного раньше
+260.9
7855BD60 55 push ebp
7855BD61 8B EC mov ebp,esp
7855BD63 56 push esi
7855BD64 33 C0 xor eax,eax
7855BD66 50 push eax
7855BD67 50 push eax
7855BD68 50 push eax
7855BD69 50 push eax
7855BD6A 50 push eax
7855BD6B 50 push eax
7855BD6C 50 push eax
7855BD6D 50 push eax
7855BD6E 8B 55 0C mov edx,dword ptr [ebp+0Ch]
7855BD71 8D 49 00 lea ecx,[ecx]
7855BD74 8A 02 mov al,byte ptr [edx]
7855BD76 0A C0 or al,al
7855BD78 74 09 je 7855BD83
7855BD7A 83 C2 01 add edx,1
7855BD7D 0F AB 04 24 bts dword ptr [esp],eax
7855BD81 EB F1 jmp 7855BD74
7855BD83 8B 75 08 mov esi,dword ptr [ebp+8]
7855BD86 8B FF mov edi,edi
7855BD88 8A 06 mov al,byte ptr [esi]
7855BD8A 0A C0 or al,al
7855BD8C 74 0C je 7855BD9A
7855BD8E 83 C6 01 add esi,1
7855BD91 0F A3 04 24 bt dword ptr [esp],eax
7855BD95 73 F1 jae 7855BD88
7855BD97 8D 46 FF lea eax,[esi-1]
7855BD9A 83 C4 20 add esp,20h
7855BD9D 5E pop esi
7855BD9E C9 leave
7855BD9F C3 ret
чудеса оптимизации
+246.7
proc mltcoef
push ecx
xor ecx,ecx
xor edx,edx
xor ebx,ebx
mov eax,dword[coef+edx]
_b:
add [coef+edx],eax
jc _c
_e:
cmp ecx,9
jne _b
inc ecx
_c
push edx
_d
add edx,4
add [coef+edx],1
jc _d
pop edx
jmp _e
pop ecx
ret
endp
Пока я писалвысирал эту НЁБ, я уже забыл, зачем оно было нужно.
+243.6
format ELF
include 'macros.inc'
public main
extrn printf
extrn puts
extrn exit
extrn strtok
extrn getenv
extrn strcmp
extrn strtol
extrn strcpy
; Функции для общения с БД
extrn get_version ; ремейк на mysql_get_client_info()
extrn get_product_by_single_name_ex
CGI_HEADER db "Content-Type: text/html", 13,10, "X-Powered-by: FASM (Flat Assembler 1.68)",13,10,0
QUERY_STRING db ?
REQUEST_METHOD db ?
query_str_env_req db "QUERY_STRING", 0
request_method_env_req db "REQUEST_METHOD", 0
RM_GET db "GET", 0
RM_POST db "POST",0
NO_ACTION_ERROR_MSG db "No action", 0
q_token db "="
r_token db "&"
; Константы ACTION
AC_VERSION equ 0; Инфа о версии и копирайте
AC_PRODUCT_ID_BY_SINGLE_NAME equ 1; ID продукта по полному совпадению имени
section '.text' executable
_start:
main:
ccall puts, CGI_HEADER
ccall getenv, request_method_env_req
push eax
;c
xor eax, eax
pop eax
ccall strcmp, eax, RM_GET ; TODO: ЗМЕНИТЬ НА POST!!!1111
cmp eax, 0
jne quit
;Что прислали в Action. ( ТОЛЬКО GET )
ccall getenv, query_str_env_req
ccall strcpy, QUERY_STRING, eax
ccall strtok, QUERY_STRING, q_token
push eax
ccall strcmp, eax, "act"
cmp eax, 0
jne no_act
je act
no_act:
ccall puts, NO_ACTION_ERROR_MSG
jmp quit
act:
; Узнаём, что за опция в act
pop eax;
ccall strtok, 0, q_token
ccall strtol, eax, 0, 10
cmp eax, AC_VERSION
je version_put
cmp eax, AC_PRODUCT_ID_BY_SINGLE_NAME
je product_id_by_single_name
jne quit
version_put:
; версия - из mysql
ccall puts, "Web kernel v0.1. (c) 2009 by Sergei V. Adoniew ( [email protected] ) with MySQL: "
ccall get_version
ccall puts, eax
jmp quit
product_id_by_single_name:
;НА Входе: name=%docname%
;НА Выходе id
; дробим строку на a=b разделителем &
ccall getenv, "QUERY_STRING"
;у нас в eax вся строка
Собственный пьяный высер на фасме ( FASM ).
Обратить внимание на ветвление:)
+175.1
Возвращение розового пони
+240.1
fld qword ptr [d]
call @ROUND
Это творчество дельфийского компилятора на тему i := round(d);
Он делает вызов функции ради одной пустяковой команды, что очень влияет на скорость.
+129.5
call LABEL
LABEL: pop eax
Получение адреса текущей инструкции убийственным для производительности методом.
+223
include '%fasm%\win32ax.inc'
entry start
section '.rsrc' resource data readable
....
section '.idata' import data readable writeable
....
start:
Semiono, ты крут!
+170.2
mov eax, pony
jnz pony
jmp magiccastle
Поне!