News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

Recent posts

#1
The Laboratory / Re: Invoke, call, jump. Simple...
Last post by NoCforMe - Today at 07:41:48 AM
Trying to figure out what you're trying to figure out here.

Couple things:
  • Your invoke invoke_: doesn't that just amount to a CALL, since invoke_() is a parameter-less function?
    So your results for your "invoke" and "call" tests should be identical, no?
  • Your call_2(): looks like all that does is test a nested call sequence?
#2
The Laboratory / Invoke, call, jump. Simple ben...
Last post by LordAdef - Today at 06:57:25 AM
Windows 11 - i7-7700HQ CPU @ 2.80GHz  2.80 GHz

Alignment is critical and will vary the results. It's just a quick test to confirm or disprove myths.


Quote==== TEST #1 CALLER ==============================================================
invoke: 51.18810        call: 44.13920  jmp: 35.24660  jmp_pushing: 44.74300
invoke: 44.96600        call: 44.10660  jmp: 34.26130  jmp_pushing: 42.71250
invoke: 43.77120        call: 45.44520  jmp: 35.09800  jmp_pushing: 46.52150
invoke: 43.47780        call: 43.58000  jmp: 34.77580  jmp_pushing: 43.93240
invoke: 43.99490        call: 43.36610  jmp: 39.00610  jmp_pushing: 48.52570
invoke: 43.75280        call: 43.35760  jmp: 34.31600  jmp_pushing: 42.59190
invoke: 44.27360        call: 44.22860  jmp: 34.54470  jmp_pushing: 42.56120
invoke: 43.04470        call: 42.56870  jmp: 35.17680  jmp_pushing: 42.03310
invoke: 44.51420        call: 42.30670  jmp: 33.87610  jmp_pushing: 43.54790
invoke: 43.75550        call: 42.78820  jmp: 34.55940  jmp_pushing: 42.61780
==== TEST #2 CALLER ==============================================================
invoke: 77.59330        call: 76.54300  jmp: 68.06050  jmp_pushing: 77.61630
invoke: 78.68050        call: 76.96140  jmp: 70.91430  jmp_pushing: 77.28310
invoke: 78.42120        call: 77.09150  jmp: 68.82880  jmp_pushing: 76.40940
invoke: 92.78660        call: 77.76970  jmp: 69.18330  jmp_pushing: 77.26350
invoke: 77.11010        call: 78.56060  jmp: 69.07500  jmp_pushing: 76.06720
invoke: 78.19980        call: 77.71200  jmp: 71.99470  jmp_pushing: 77.59610
invoke: 78.02620        call: 76.29750  jmp: 68.89000  jmp_pushing: 78.36600
invoke: 78.33900        call: 76.02230  jmp: 68.66480  jmp_pushing: 77.67070
invoke: 77.91140        call: 75.95980  jmp: 69.06700  jmp_pushing: 76.11040
invoke: 78.43950        call: 77.61860  jmp: 69.92810  jmp_pushing: 76.97630
#3
Windows API / Re: DLL pickle
Last post by NoCforMe - Today at 05:56:59 AM
Yes? Please go on and elaborate. What about the instance handle?
#4
Hardware & Software Corner / EFI Boot Editor
Last post by Vortex - Today at 05:08:13 AM
Boot Editor for (U)EFI based systems. The tool is providing a graphical user interface.

https://github.com/Neverous/efibooteditor
#5
ObjAsm / Re: New Editor
Last post by jj2007 - Today at 04:50:35 AM
See your PMs :thumbsup:
#6
Windows API / Re: DLL pickle
Last post by tenkey - Today at 03:49:32 AM
Quote from: NoCforMe on May 13, 2025, 05:44:14 AMSo I'm curious about how exactly processes work here. Does the DLL run in a separate process, or is it part of the debugee's process? Also, my understanding is that the DLL will be unloaded when the last program (process) that uses it terminates (i.e., when the reference count goes to zero); is that correct? It seems to work that way.

In any case, everything seems to be working OK. One possible snag occurs to me, though: what if there are multiple programs that are using that control? That means that the class will remain registered even after the DLL is unloaded.

IIRC, the HINSTANCE
#7
ObjAsm / Re: New Editor
Last post by Biterider - Today at 03:04:14 AM
Hi JJ
Thanks for providing this information. It gives me a rough idea of what to expect.  :thumbsup:
To make an accurate comparison, when you stopped the timer, did the editor hold the content in memory, or did this time include the loading process? 
Is the trimming routine written inside the editor, or is it implemented differently? 

If I have time, I'll do the same in the editor directly to see the cost of the ADE infrastructure. 
Ultimately, whether it takes 10 ms or 1000 ms doesn't matter. What's important is flexibility and robustness.

Regards, Biterider
#8
ObjAsm / Re: New Editor
Last post by jj2007 - June 23, 2025, 10:12:12 PM
For a similar routine: 32 ms for trimming 48369 lines
Shouldn't pose any problem :cool:
#9
Windows API / Re: How do I get access to my ...
Last post by FORTRANS - June 23, 2025, 09:31:52 PM
Hi,

   I read through your tutorial, briefly.  Seems well written
and explains things reasonably.

Regards,

Steve N.
#10
ObjAsm / Re: New Editor
Last post by Biterider - June 23, 2025, 12:30:22 AM
Hi
I've made some progress with the scripting engine.
This is my first useful script for trimming trailing spaces from each editor line:

-- Purpose: Trim spaces at the end of each line.
 
Application.FreezeUI()
hEdit = Application.NewEditor("ADE.ini")
Editor.Show(hEdit)
for i = 1, Editor.GetLineCount(hEdit), 1
do
  LineContent = Editor.GetLineText(hEdit, i)
  j = string.len(LineContent)
  k = j
  while (j > 0)
  do
    if string.sub(LineContent, j, j) ~= " " then break end
    j = j - 1
  end
  if k ~= j then Editor.SetLineText(hEdit, i, string.sub(LineContent, 1, j)) end
end
Editor.Close(hEdit)
Application.UnfreezeUI()
Application.MsgBox("Operation successfully finished.", "Information", 0)

It runs smoothly.
A performance test must be done, but it seems quite fast at first glance.

Biterider