Registers / General Purpose Registers (GPR)

More of a personal post as I get to grips with Registers / General Purpose Registers (GPR) and start making notes.

The 8 GPR have existed since the 8-bit Intel x86 processor, and they can be viewed using a debugged such as GDB.

After the 16-bit era, the 32-bit era added an e (for extended) and then the 64-bit era changed the e to an r (for register).

geektechstuff_memory_registers_1
Memory Registers

Accumulator register (AX). Used in arithmetic operations.

Was AX in 16-bit, EAX in 32-bit and RAX in 64-bit.

Counter register (CX). Used in shift/rotate instructions and loops.

Was CX in 16-bit, ECX in 32-bit and RCX in 64-bit.

Data register (DX). Used in arithmetic operations and I/O operations.

Was DX in 16-bit, EDX in 32-bit and RDX in 64-bit.

Base register (BX). Used as a pointer to data (located in segment register DS, when in segmented mode).

Was BX in 16-bit, EBX in 32-bit and RBX in 64-bit.

Stack Pointer register (SP). Pointer to the top of the stack.

Was SP in 16-bit, ESP in 32-bit and RSP in 64-bit.

Stack Base Pointer register (BP). Used to point to the base of the stack.

Was BP in 16-bit, EBP in 32-bit and RPB in 64-bit.

Source Index register (SI). Used as a pointer to a source in stream operations.

Was SI in 16-bit, ESI in 32-bit and RSI in 64-bit.

Destination Index register (DI). Used as a pointer to a destination in stream operations.

Was DI in 16-bit, EDI in 32-bit and RDI in 64-bit.

 

AX, CX, DX and BX are mainly used a temporary variables for the CPU (Central Processing Unit) as executes machine instructions. SP, BP, SI, DI are sometimes called pointers as SP / BP store memory addresses (locations), and SI / DI point to where data needs to be read from / to.

Welcome to GeekTechStuff

My home away from home and where I will be sharing my adventures in the world of technology and all things geek.

The technology subjects have varied over the years from Python code to handle ciphers and Pig Latin, to IoT sensors in Azure and Python handling Bluetooth, to Ansible and Terraform and material around DevOps.

Let’s connect