Size: a a a

Ассемблер

2021 August 31

d

disba1ancer in Ассемблер
правда я бы лучше написал, но это не максимальная оптимизация, емнип
источник

E

Entusiast in Ассемблер
А максимальную оптимизацию покажи, только на Intel синтаксисе
источник

d

disba1ancer in Ассемблер
main.cpp.obj:     формат файла pe-i386


Дизассемблирование раздела .text:

00000010 <_testfreq>:
 10:  57                     push   edi
 11:  56                     push   esi
 12:  83 ec 14               sub    esp,0x14
 15:  0f 31                  rdtsc  
 17:  89 c6                  mov    esi,eax
 19:  89 d7                  mov    edi,edx
 1b:  c7 04 24 e8 03 00 00   mov    DWORD PTR [esp],0x3e8
 22:  ff 15 00 00 00 00      call   DWORD PTR ds:0x0
 28:  83 ec 04               sub    esp,0x4
 2b:  0f 31                  rdtsc  
 2d:  29 f0                  sub    eax,esi
 2f:  c7 44 24 08 40 42 0f   mov    DWORD PTR [esp+0x8],0xf4240
 36:  00
 37:  19 fa                  sbb    edx,edi
 39:  c7 44 24 0c 00 00 00   mov    DWORD PTR [esp+0xc],0x0
 40:  00
 41:  89 04 24               mov    DWORD PTR [esp],eax
 44:  89 54 24 04            mov    DWORD PTR [esp+0x4],edx
 48:  e8 00 00 00 00         call   4d <_testfreq+0x3d>
 4d:  83 c4 14               add    esp,0x14
 50:  5e                     pop    esi
 51:  5f                     pop    edi
 52:  c3                     ret    
 53:  90                     nop
 54:  90                     nop
 55:  90                     nop
 56:  90                     nop
 57:  90                     nop
 58:  90                     nop
 59:  90                     nop
 5a:  90                     nop
 5b:  90                     nop
 5c:  90                     nop
 5d:  90                     nop
 5e:  90                     nop
 5f:  90                     nop

Дизассемблирование раздела .text.startup:
источник

E

Entusiast in Ассемблер
А что за call 0x0 ?
источник

d

disba1ancer in Ассемблер
хз, после дизасма имена меток теряются
источник

d

disba1ancer in Ассемблер
это выхлоп компилятора:
 .text
 .p2align 4
 .globl  _testfreq
_testfreq:
LFB9770:
 push  edi
 push  esi
 sub  esp, 20
 rdtsc
 mov  esi, eax
 mov  edi, edx
 mov  DWORD PTR [esp], 1000
 call  [DWORD PTR __imp__Sleep@4]
 sub  esp, 4
 rdtsc
 sub  eax, esi
 mov  DWORD PTR [esp+8], 1000000
 sbb  edx, edi
 mov  DWORD PTR [esp+12], 0
 mov  DWORD PTR [esp], eax
 mov  DWORD PTR [esp+4], edx
 call  ___udivdi3
 add  esp, 20
 pop  esi
 pop  edi
 ret
источник

E

Entusiast in Ассемблер
Вроде нормально
источник

d

disba1ancer in Ассемблер
странно, деление он не очень оптимизировал
источник

d

disba1ancer in Ассемблер
хотя учитывая последний вызов, то хз что там, возможно, нечто оптимизированное
источник

E

Entusiast in Ассемблер
Сам Sleep в kernel32 оптимизирован не очень
источник

d

disba1ancer in Ассемблер
та и хер с ним
источник

d

disba1ancer in Ассемблер
хз как частоту залочить, турбобуст я отрубил, но она всё равно немного плавает, по крайней мере по тесту
источник

A

Aleksandr in Ассемблер
this
источник

d

disba1ancer in Ассемблер
да уже рассусолили
источник

II

Ira Irina in Ассемблер
у меня x64dbg 31 0f  показывает xor dword ptr [edi], ecx
источник

E

Entusiast in Ассемблер
Big-endian
Пишется - 0x310F, а в памяти - 0x0F31
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
поставь минимальную частоту (чтоб она не плавала, но комп при этом работал), проц всегда будет на ней тужится. или от интел есть утилитка, она может PL менять, это типа регулировка потребляемой мощности. там же можно отключить хибертрейдинг и турбобуст
источник

II

Ira Irina in Ассемблер
aaa
источник

d

disba1ancer in Ассемблер
а если 100% оставить?
источник

d

disba1ancer in Ассемблер
просто в этом окне можно кучу настроек разблокировать и среди них есть конкретно отвечающая за разгон выше 100%
источник