ASM or Assembly, is actually pretty much synonimous with machine code. Each line of ASM corresponds to a single line of binary/hexadecimal insrtuctions. It is a platform specific programming language at the lowest reasonable leve. (Writing in binary or hex would be lower, yes, but has ZERO benefits, because ASM is just as fast. The ASM command "MOV EA EAX" would be exactly equivelant to something like 245AFD2H4A so on and so forth.)
By platform specific, I mean that each architecture of processor has its own assembly language, although I'm not sure of the major differences between x86 and x64.
ASM actually is still used, especially in current gen console games. Graphics engines are written in PS2 specific ASM (Which is pretty much the single thing that makes it hard to work with PS2, but is also what makes it more powerful from a programming perspective. If the PS2 had the exact same specs as the XBOX, the games could come out looking better unless the XBOX coders started ignoring XNA and went straight ASM.)
It's also used often for programming Finite state machines such as Soda Machines, Claw games, and digital door locks.