Yup, those are necessary things when it comes to ASM. Thanks xD.
But you, who are learning C#, if it isn't visual C#, you'll soon learn the stack (or not)... But i must learn this because many routines use the "stack" (i'm almost sure you don't know what it is) as a way of passing parameters. E.g: There's a routine that creates a pokemon in our party. But that's it? A random one? No, we must specify what poke is, and what level, item, etc... See? Those are called 'arguments', values that must be passed to a function so it uses them to do what we WANT.
As you may have realized by now, the stack is a 'pile' of values, which some are arguments, others offsets, and others just data.
But yay, you're gonna get through that if you're seriously about learning C# (which i know you are, and your gonna teach me later )
I already have the routine, missing only the GFX (if u know what i mean).
Also, i heard you're learning C#? Thats great, i wish i could learn it too, its very usefull to allmost everything (including ASM!)