This document discusses single pass assemblers. It notes that single pass assemblers scan a program once to create the equivalent binary, substituting symbolic instructions with machine code. However, this can cause forward reference problems when symbols are used before being defined. The document describes two solutions for single pass assemblers: 1) eliminating forward references by defining all labels before use or prohibiting forward data references, and 2) generating object code directly in memory without writing to disk, requiring reassembly each time.