This chapter discusses data movement instructions in x86 assembly language. It covers common instructions like MOV, PUSH, POP and string instructions. It explains how instructions are represented in machine code, including opcode, operands, addressing modes, registers, and data sizes. Special emphasis is placed on interpreting unknown machine code and correctly representing symbolic instructions in binary. The goal is for readers to understand how to select the proper instruction to accomplish data transfers and translate between assembly mnemonics and machine language.