This document presents a typed assembly language called SIF for checking non-interference properties of assembly programs. SIF includes pseudo-instructions like cpush and cjmp that impose a stack discipline on the control flow to simulate block structures lost during compilation. The document defines the syntax and type system of SIF, which uses security types and a program counter label to prevent explicit and implicit information flows. Well-typed SIF programs are proved to satisfy non-interference when assembled to untyped machine code.