mooseman wrote:
* Assembly language - an overview - the big picture. This would consist of at least the following three categories - Registers, "the stack" (explanation needed as to what that is), and commands.
Each architecture has its own assembly language (e.g. PPC assembly is used for the PPC architecture, x86(-64) assembly is used for the x86(-64) architecture, etc.)
mooseman wrote:
** Registers. Their names, what each one can be used for, any restrictions on their use.
Their function and names differ from architecture to architecture. (e.g. r0-r15 are the registers on the ARM, but there are 32 in total; Intel has: ax, bx, cx, dx, sp, bp, ip, di, si, cs, ds, es, fs, gs, ss, cr0, cr2, cr3, etc.).
mooseman wrote:
** "The" stack / "a" stack. What is "A" stack? What is "THE" stack? ( The term "the stack" is used **often** in programming discussions, but **what exactly** does it mean? May be obvious to long-timers, but answers to these would be very useful to newcomers.)
** Why would I / should I use a stack?
http://wiki.osdev.org/Stackmooseman wrote:
** Commands (mnemonics) - the basics, and a few examples.
The instructions differ from architecture to architecture as well (e.g. ARM has no div, PPC has lis (load immediate and shift), Intel has lgdt (load GDT)).
mooseman wrote:
Although some of this may be available elsewhere, it would be really useful to have at least the above information all here in one place. It would give a good solid base for newcomers to assembly.
There are various good resources for x86 assembly already, such as:
http://en.wikibooks.org/wiki/X86_Assemblyhttp://en.wikibooks.org/wiki/X86_DisassemblyIf you want to know how to program in assembly for another architecture you should get the manuals for that architecture. I don't feel like anybody would ever write articles about all the assembly languages out there.
Regards,
Stephan J.R. van Schaik.