Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - harold

Pages: 1 ... 14 15 [16]
Miscellaneous / My Little Pony: Friendship is Magic
« on: July 20, 2011, 01:25:15 pm »
I see no mention of ponies anywhere! This has now been corrected.

Not sure if this is still needed, but here's some more data:

1. 84+
2. S-0304
3. No (as far as I know)
4. #2
5. Yes
6. 44
7. 0F
8. 04DA
9. 000000

To clarify, the code is stored in the executable as a string, and will only be assembled when the constructor of the relevant Asm object is ran. You don't have you use it like that though - it can also take an array of bytes, which saves you the overhead of assembling the code at runtime, but it's less convenient.

I don't know how many people here use C# (not many, going by the Programming Help topics..)
But this might be interesting anyway.

SharpAsm is a small library I wrote that lets you write a function in assembly and use it directly from C#.
It's very easy to use, for example:
Code: [Select]
Asm asm = new Asm(@"
    bsr rax, rcx
Log2Delegate fastLog = asm.GetDelegate<Log2Delegate>();
// now use fastLog like any normal delegate
Obviously assembling the code takes a little time. When I use this library, I usually create all asm routines in a static constructor and then keep reusing the same delegate for all instances.

Source (the assembler):
Source (executable memory manager):

The assembler uses string manipulation instead of actual parsing, and is kind of kludgy. It also doesn't include all opcodes and doesn't always use the smallest encoding (eg not the special eax forms).

edit: almost all of SSE, SSE2, SSE3, SSSE3 and SSE4.1 is now supported. Just redownload the files. Please report any bugs .. if anyone actually uses this (uhm no)

Pages: 1 ... 14 15 [16]