Portál AbcLinuxu, 11. května 2025 04:38
8DA424 00000000 LEA ESP, DWORD PTR SS:[ESP]
A není mi moc jasný, k čemu to tam je. Jestli dobře chápu instrukci LEA, tak to dělá to
samý co mov esp, esp
, tudíž by to bylo úplně nanic, ale to je mi divný...Řešení dotazu:
6FDA0326 . 8DA424 00000000 LEA ESP,DWORD PTR SS:[ESP]
6FDA032D . 8D49 00 LEA ECX,DWORD PTR DS:[ECX]
6FDA0330 > 0FBEBD A821DE6F MOVSX EDI,BYTE PTR SS:[EBP+6FDE21A8]
6FDA0337 . 0FBE9D A021DE6F MOVSX EBX,BYTE PTR SS:[EBP+6FDE21A0]
První dvě instrukce evidentně zarovnávají první movsx na 16, na druhej už se ale kašle...Jo. Kdysi jsem si s tím hrál v blitjit, a zdá se mi, že tyto optimalizace jsou výhodné jen pro starší CPU, u novějších je ten rozdíl zarovnání minimální. Třeba na mém Q6600 mu to je úplně jedno.
(používá se to většinou jako optimalizace pro skoky v inner loops, všude jinde to je nezajímavé)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.