Skip to main content

Microcontrollers

Section 15.1 Data Transfer Instructions

Before any meaningful instructions can take place, data must be loaded into the general purpose registers. This data can come from program memory, data memory (including the I/O registers), another general purpose register, or it can be an immediate data value. Data transfer instructions define the machine instructions that are available to perform these tasks. Instructions that load data into general purpose registers can
  • move: copy a register or pair of registers into a general purpose register,
  • load: load immediate data into a general purpose register; load data directly or indirectly (with or without displacement, post-increment, or pre-decrement) from data memory into a general purpose register; load data indirectly from program memory into a general purpose register,
  • in: input data from an I/O register into a general purpose register, and
  • pop: take data from the stack and save it into a general purpose register.
Data can also be stored from a general purpose register into memory. These instructions can
  • store: store data directly or indirectly (with or without displacement, post-increment, or pre-decrement) from a general purpose register into data memory; store data indirectly from a general purpose register into program memory,
  • out: output data from a general purpose register into an I/O register, and
  • push: take data from a general purpose register and save it in the stack.