This document provides an overview of intermediate 8086 assembly language programming. It discusses machine code and assembly language, compilers and assemblers, general purpose registers, simple commands, number formats, jumps, labels, logical operations, instructions that affect memory, changing addresses, examples using memory, the instruction pointer, the stack, and PUSH and POP instructions. The document is intended to teach basic concepts of 8086 assembly language programming.