**********************************************************
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
An Enormous Tut on mASM: PART 1... A Little Background
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**********************************************************
INTRODUCTION
------------
On this series of tutorials, I *WILL* try and teach you how to program in
Win32ASM (mASM Specific). There is a great tutorial by rECLAIM in TASM, which
helped me in the process of learning. But 90% ASM programmers code in mASM
so its a good choice. If you got stuck in a code, you can get support easily.
WHY MASM?
---------
1. MASM improves the readability of your source code and makes learning ASM
a lot easier.
The traditional way of calling an API Function:
push param4
push param3
push param2
push param1
call API
While in MASM:
Invoke API, param1, param2, param3, param4
2. MASM supports comparison and loop construction.
These are:
.IF, .ELSEIF, .ELSE, .ENDIF
.REPEAT, .UNTIL
.WHILE, .ENDW, .BREAK
.CONTINUE
You dont have to mess with jumps anymore. :)
TOOLS TO USE
------------
1. MASM32 PACKAGE -- win32asm.cjb.net
Contains Text Editor, assembler, linker etc.
2. Resource Editor -- protools.cjb.net
Give yourself a break and dont write rc scripts. (ONLY USED BY PEOPLE
WHO VALUE THEIR TIME)
3. TEXT EDITOR --
MASM package includes a text editor (I dont use that though). Just use
a text editor with SYNTAX HIGHLITING *VERY USEFUL*. I use ULTRAEDIT.
4. API REFERENCE -- win32asm.cjb.net
A must have if you are serious in programming.
OPCODES
-------
OPCODES are the instructions for the Processor. Here are the OPCODES NEEDED.
OPCODE MEANS
1. mov 1, 2 moves the value of 2 into 1 (actually... copies)
2. add 1, 2 adds the value of 2 into 1
3. sub 1, 2 subtracts the value of 2 into 1
4. shr ax, 16 shift all the bits of ax 16 places to the right
5. push 1 and pop 2 push the value of 1 into the stack and pops into the memory of 2
e.g. push eax
pop var1
REGISTERS
---------
works just like variables (GENERAL PURPOSE REGISTERS ONLY)
32bit lower 16bits highbyte lowbyte PURPOSE
eax ax ah al ACCUMULATOR
ebx bx bh bl BASE
ecx cx ch bl COUNTER
edx dx dh dl DATA
Although they have names, you can use them for anything.
WINAPI
------
These are the set of functions provided by the system. The heart of
Windows Programming.
Contact
-------
For questions and shit:
e-mail : This email address is being protected from spambots. You need JavaScript enabled to view it.