(I don't know about you but I was excited with assembly)
A simple tool for experimenting with assembly is already installed in your pc.
Go to Start menu->Run, and type debug
debug (command)
debug is a command in DOS,
MS-DOS, OS/2 and Microsoft Windows (only x86 versions, not x64) which
runs the program debug.exe (or DEBUG.COM in older versions of
DOS). Debug can act as an assembler, disassembler, or hex dump
program allowing users to interactively examine memory contents (in assembly language, hexadecimal or ASCII), make changes, and selectively execute COM, EXE and other file types.
It also has several subcommands which are used to access specific disk
sectors, I/O ports and memory addresses. MS-DOS Debug runs at a
16-bit process level and therefore it is limited to 16-bit computer programs. FreeDOS Debug has a "DEBUGX" version supporting 32-bit DPMI programs as well.
Tutorials:
- A Guide to DEBUG
- How PC Programs Work: Understanding x86 (Intel) Machine Code
- DEBUG Tutorial
If you want to understand the code you see in IDA Pro (or OllyDbg), you'll need to learn how compiled code is structured. I recommend the book Reversing: Secrets of Reverse Engineering
I experimented a couple of weeks with debug
when I started learning assembly (15 years ago).
Note that debug
works at the base machine level, there are no high level assembly commands.
And now a simple example:
Give a
to start writing assembly code - type the below program - and finally give g
to run it.
(INT 21
display on screen the ASCII char stored in the DL
register if the AH
register is set to 2
-- INT 20
terminates the program)