Is there any general list with CPU registers?

If you are new to OS Development, plan on spending some time here first before going into the other forums.

Moderator:Moderators

Post Reply
Developer
Posts:37
Joined:Sun May 30, 2010 4:30 pm
Is there any general list with CPU registers?

Post by Developer » Tue Jun 08, 2010 2:38 pm

Hi,

Does Anybody know if there is a general list of CPU registers?
Like AX, DS, SS, SI etc. A list which explains each register
actually what they mean etc.

Thanks!

Have a nice day...

halofreak1990
Posts:92
Joined:Thu May 27, 2010 8:54 pm
Location:Netherlands

Re: Is there any general list with CPU registers?

Post by halofreak1990 » Tue Jun 08, 2010 3:38 pm

http://www.jegerlehner.ch/intel/IntelCodeTable.pdf
Has a large list of ASM commands and registers. I personally use it as a reference whenever I need to code something in ASM.

About the registers... they are only shown for reference, they aren't really explained in the file, so I'll do that here.

The registers AL, AX, AH, and EAX are so-called accumulators, they are used primarily for gathering data from other registers like DX
AL is the low byte of a word, while AH is the high byte. AX is the word in its entirety, while EAX equals a dword.

The registers BL, BX, BH, and EBX are registers used in MOV operations.
They follow the same principle as the A-based registers.

The registers CL, CX, CH, and ECX are count registers for string operations.
They follow the same principle as the A-based registers.

The registers DL, DX, DH, and EDX are data multiplication, divisions, and general IO registers
Again, they follow the same principle as the A-based registers.

There are some special combinations of segment registers and general registers that point to important addresses:

CS:IP (CS is Code Segment, IP is Instruction Pointer) points to the address where the processor will fetch the next byte of code.
SS:SP (SS is Stack Segment, SP is Stack Pointer) points to the address of the top of the stack, i.e the most recently pushed byte.
DS:SI (DS is Data Segment, SI is Source Index) is often used to point to string data that is about to be copied to ES:DI.
ES:DI (ES is Extra Segment, DI is Destination Index) is typically used to point to the destination for a string copy, as mentioned above.

I hope this is enough information to get you going.

Developer
Posts:37
Joined:Sun May 30, 2010 4:30 pm

Re: Is there any general list with CPU registers?

Post by Developer » Thu Jun 10, 2010 9:44 am

Thank you very much! :) :D :D :D

Post Reply