Justin
Justin

Reputation: 86729

How to execute machine code (learning assembly)

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

Answers (5)

handles
handles

Reputation: 7853

You might want to read work through "The Elements of Computing Systems"

Edited: because link to book no longer works.

Upvotes: 4

Indy9000
Indy9000

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

anon
anon

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

Robert Campbell
Robert Campbell

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

Noon Silk
Noon Silk

Reputation: 55082

Start with some tutorials.

Look at either FASM or MASM.

Upvotes: 0

Related Questions