Reputation: 86729
I'd like to have a go at learning assembly, and possibly writing my own simple assembler (I recently read an interesting article on how to create an operating system, and quickly realised that a certain familiarity with assembly would help me out a lot here).
The trouble is that although I'm sure I'll have no problems finding articles and guides on assembly language / machine code, I tend to learn by doing, and I'd really like to have a go at executing my code. I figure I have two options:
The second option sounds better to me, as it protects me from potentially making stupid mistakes, and will probably more closely resemble the environment I'll be in while writing an OS, but I'm not really sure how to do either.
Upvotes: 4
Views: 10292
Reputation: 7853
You might want to read work through "The Elements of Computing Systems"
Edited: because link to book no longer works.
Upvotes: 4
Reputation: 8851
Great place to learn windows assembly programming for x86 is legendary Iczelion's tutorials.
You can also find MASM tools here
and if you have the patience, #asm on EFNET
Upvotes: 4
Reputation:
You don't say which processor you are interested in, which is of great importance. However, assuming the intel x86 family, there are quite a few emulators out there which will let you run your code safely on your desktop, such as this. Google for "8086 emulator" for more.
Upvotes: 1
Reputation: 6958
I recommend you learn a RISC assembly instead of CISC; you will have fewer instructions to learn and you can practice building more of the higher-level constructs. I first learned MIPS assembly because it has a great free emulator (SPIM) and textbook, which I unfortunitely forget the name of, but it had an old-school woven binding and was a cream color.
Upvotes: 2