An assembly language is a shorthand for the MachineLanguage of a particular processor. These contain helpful features like human-readable shorthands for instructions, letting you label lines of your program with names to save you from counting bytes, special directives for including data, and things like that.
Programming in assembly is as low level as one can get; however, unlike what a lot of people believe, it is not really much harder than most other languages. Still, writing a complete program in assembly is a lot of work.
With constantly evolving compilers, assembly code is seen much less. Most often one will see a few lines of "inline assembly" in other languages.
However, there still are hardcore coders who code applications entirely in assembly language. The use of the word "hardcore" is not meant to imply that they are especially good at producing useful software or that we advise doing this, though.
Introduction to Win32 Assembly
The MASM32 compiler (Win32)
NASM - The Netwide Assembler (Linux & Windows)
RosAsm (Windows & ReactOS)
FASM (DOS, Windows & Linux)
Figured i'd put an example here too. This is for a com file.
org 100h mov ax,0900h mov dx,msg int 21h mov ax,4C00h int 21h msg db "Hello World!$"
