This is my advanced assembler tutorial. Im assuming you did the basicfreaking tutorial ok? If not go back and read it or im comin to your house to beat the living Daylights outta you with a crow bar :) Ok so maybe im joking Ok so you know some basic assembler stuff, but now we goin advanced. OK, first off you should know that ASM doesnt compile itself. you need a compiler. I recommend tasm and tlinker, which the shareware versions are on my page for download Ok when your program is done, youll have to open tasm in DOS (DOS is the best operatign system ever, for programming that is. for games i prefer windows on a personal note FF7 is the best game ever made) Once in dis you will type TASM Prog.asm where prog.asm is just needs to eb the source files name to if your source file is named UFO.asm itd be tasm ufo.asm then youll see a readout, like wether it got any errors, if it did get errors it emans theres a bug or imporperly done instruction in your code. If all goes well you should get a nice .obj file to play with then, in dos type either tlink prog.obj /t for a .COM program or tlink prog.obj for a EXE program... you choose which one to use based on the stuff we learn now. First is the Entry point... in your code when you start it starts out like this for a COM file .model tiny this emans all code and data must be in one segment no larger then 64k .code indicates code sgement begins org 100h In memory the program will start at address 100h CS:0100h. thats thwere when loaded into memory itll start executing.. EXEs start at 0h Ok now i mentioned segments it probaby makes you wonder what theya re a segment is a 64k long piece of code ro data or both sgements are in segment:offset form 0000:0000 this is segment #0 offset #0 when ever the second set of zeros reaches FFFFh (64k) and increments yet another time then the segment part the first set of zeros will go up one.. also segments are dsivided into types CS = code sgement DS = data segment ES = extra segment register SS = stack segment the stack segment is for the extra memory .EXEs reserve in the form of a stack. the stack is a blank location in memory for data its where the data from the push /pop instructions get saved and used from Also you should knowthat the difference between .COM files and .EXE is that exes have a special EXE ehader whereas coms do not. ill explain this in detial sometime.