A P P E N D I X E S
for
A Guide to DEBUG
( The Microsoft® DEBUG.EXE Program )
Copyright©2004, 2013 by Daniel B. Sedory

This page may be freely copied for PERSONAL use ONLY !
( It may NOT be used for ANY other purpose UNLESS you have
first contacted and received permission from the author ! )

 

  The 8086 CPU REGISTERS

AX: 

AH

AL

BH

BL

CH

CL

DH

DL

<-- 8 bits -->

<-- 8 bits -->

< 1 byte >

< 1 byte >

Accumulator
BX:  Base Register
CX:  Count Register
DX:  Data Register
   
   
 

SP

BP

SI

DI

 Stack Pointer

 

 Base Pointer

 

 Source Index

 

 Destination Index

 

CS

DS

SS

ES

 Code Segment

 

 Data Segment

 

 Stack Segment

 

 Extra Segment

 

IP

 Instruction Pointer



The 8086 CPU uses a method I'll call the SEGMENT: OFFSET scheme whenever it needs to access Memory locations or Jump from one 64kb Segment to another. It does this by combining two 16-bit registers together to form a 20-bit Segment:Offset value ( which means it can access over 1MB of Memory this way). For certain types of tasks, the registers are often grouped together in the same way, but the programmer must still make sure that the CPU will use them as expected. Here are a couple tasks which are set by the CPU itself:

Two other sets which are often used together in String operations are:

Back to Top


The "FLAGS" REGISTER

 

How Flags are Set in the Registers