We present the design of a typed assembly language called TALT that supports heterogeneous
tuples, disjoint sums, arrays, and a general account of addressing modes. TALT also implements
the von Neumann model in which programs are stored in memory, and supports relative addressing.
Type safety for execution and for garbage collection are shown by machine-checkable proofs. TALT
is the first formalized typed assembly language to provide any of these features.