Assembly language is a low-level programming language that is one step away from machine language, with each statement translating to a single machine instruction, requiring programmers to understand the underlying computer architecture, and one-pass assemblers generate object code by resolving forward references on later passes or generating modification records for the loader.