Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change
Quote from: LordAdef on June 27, 2025, 05:04:23 AMWhile writing the test prog, I was moving routines around and sometimes I got "invoke" faster than "call"
Quote from: NoCforMe on June 25, 2025, 08:54:24 AMQuote from: daydreamer on June 24, 2025, 11:14:15 PMQuote from: NoCforMe on June 24, 2025, 09:00:25 PMSo it's better not to align a proc???I thought it should be like that with Align vs unaligned proc start,because innerloop some opcodes later ends up aligned
Excellent point; hadn't thought of that.
It's not necessarily the proc's entry point that you want aligned:
it's whatever instruction that marks the start of a time-sensitive part of the proc, a loop or whatever.
So the alignment should probably be done inside the proc, not outside.
Quote from: jj2007 on June 25, 2025, 01:14:58 AMQuote from: daydreamer on June 25, 2025, 12:54:02 AMmysterious error,alignedinvoke.exe wont workJust run it through Olly and tell me where it chokes. Btw no MasmBasic there, it's purest Masm32![]()
Quote from: Quan on June 26, 2025, 12:53:28 PMReally sorry for reviving a thread from 2013
Quote from: NoCforMe on June 25, 2025, 08:54:24 AMMight wanna start thread with comparing Align 64 with a innerloop vs unaligned loop, where cpu constantly need to reload cache linesQuote from: daydreamer on June 24, 2025, 11:14:15 PMQuote from: NoCforMe on June 24, 2025, 09:00:25 PMSo it's better not to align a proc???I thought it should be like that with Align vs unaligned proc start,because innerloop some opcodes later ends up aligned
Excellent point; hadn't thought of that.
It's not necessarily the proc's entry point that you want aligned:
it's whatever instruction that marks the start of a time-sensitive part of the proc, a loop or whatever.
So the alignment should probably be done inside the proc, not outside.
Quote from: MichaelW on March 01, 2013, 06:08:45 PMAssuming that ESP has the same value that it had at entry (IOW, anything that was pushed onto the stack has been removed from the stack), you can set the return value in EAX and use RET.