I suggest you learn the masm syntax. Even though HLA comes with a book and everything, the HLA syntax is backwards for no apparent reason and I think that will only confuse you.
When it comes down two it the only way to learn asm is to program in it. Though I did that I also spent a lot of time learning it by reversing C++ programs. It seems to me the whole point of learning asm is to use it in your C++ code or reverse engineer the original C code, so I wouldn't start too much on asm till you've learned C++, but different people learn different ways so do what u think is best. Im just listing some options.
@void:
i know it's the wrong section but i posted it here because asm section is dead, lol, even though ur post didn't help me at all i will still thank you lol
Second one has 1426 pages, that should keep you busy.
I am so confused, whenever i put my asm code in my c++ program it's not working, I want to learn the kind of asm where i can just go to my c++ program and put:
Code:
_asm
{
; code here
}
I often use __asm to write assembly bridges to call functions in the exectuable that loads my DLL, where variables have to be explicitly passed through registers, as such:
Code:
static int GL_SelectTexture( int texUnit )
{
__asm
{
mov esi, texUnit
mov eax, GL_SELECTTEXTURE_ADDRESS
call eax
}
}
There isn't much use for coding asm for game-hacking, unless you need bridges between the game/engine and your module and funcptr's aren't suitable.
Razor I believe you can also use the _fastcall prefix to create a function pointer that will load available registers first, but it might be best just to go asm to be safe.
Yeah, the values are explicitly read from registers in the .exe I've disassembled, so I can't rely on my compiler to assume the registers =p
I suppose it was an optimisation effort. ASM bridges are pretty easy to write anyway, so it's no problem. =D
Originally Posted by why06
Razor I believe you can also use the _fastcall prefix to create a function pointer that will load available registers first, but it might be best just to go asm to be safe.