Trong kiến trúc máy tính, thường có hai nhóm thanh ghi chính là:
* Nhóm thanh ghi địa chỉ (Address Registers): Bao gồm các thanh ghi chứa địa chỉ bộ nhớ của các phần tử dữ liệu hoặc lệnh trên bộ nhớ chính.
Chức năng của nhóm thanh ghi này là lưu trữ địa chỉ của dữ liệu hoặc lệnh trong bộ nhớ, giúp CPU truy xuất và thực thi các lệnh và dữ liệu cần thiết.
* Nhóm thanh ghi dữ liệu (Data Registers): Bao gồm các thanh ghi chứa dữ liệu để xử lý bởi CPU. Chức năng của nhóm thanh ghi này là lưu trữ và xử lý dữ liệu, bao gồm các phép tính số học, logic, truy cập dữ liệu từ bộ nhớ hoặc thiết bị ngoại vi.
Trong kiến trúc CPU x86 cổ điển, còn có một nhóm thanh ghi điều khiển (Control Registers) chứa các thanh ghi quản lý luồng xử lý của CPU, bao gồm thanh ghi chỉ số (Instruction Pointer), các thanh ghi đoạn (Segment Registers) và thanh ghi cờ (Flags Register). Tuy nhiên, nhóm thanh ghi này không còn được sử dụng trong kiến trúc CPU hiện đại như x86_64.
Trong kiến trúc CPU x86, có 3 nhóm thanh ghi chính:
- Nhóm thanh ghi Điều khiển (Control Registers):
+ Thanh ghi Instruction Pointer (IP) chỉ định vị trí của lệnh tiếp theo trong bộ nhớ.
+ Thanh ghi Flags (FLAGS) chứa các bit cờ để lưu trữ trạng thái của CPU sau mỗi lệnh thực hiện.
+ Thanh ghi Segment Registers (CS, DS, SS, ES, FS, GS) chứa thông tin về các đoạn bộ nhớ (segments) trong bộ nhớ.
- Nhóm thanh ghi Trạng thái (Status Registers):
+ Thanh ghi Flags (FLAGS) chứa các bit cờ để lưu trữ trạng thái của CPU sau mỗi lệnh thực hiện.
- Nhóm thanh ghi Dữ liệu (Data Registers):
+ Thanh ghi Accumulator (AX) có thể được sử dụng để thực hiện các phép tính toán số học và logic.
+ Thanh ghi Base Register (BX) có thể được sử dụng như một con trỏ cơ sở (base pointer) cho các khối dữ liệu trong bộ nhớ.
+ Thanh ghi Counter Register (CX) có thể được sử dụng để lặp lại các lệnh hoặc để đếm các sự kiện.
+ Thanh ghi Data Register (DX) có thể được sử dụng để lưu trữ dữ liệu đầu vào hoặc đầu ra của các hoạt động đọc/ghi vào các thiết bị ngoại vi.
+ Thanh ghi Stack Pointer (SP) được sử dụng để lưu trữ địa chỉ của đỉnh (top) của bộ đệm ngăn xếp.
+ Thanh ghi Base Pointer (BP) được sử dụng để lưu trữ địa chỉ cơ sở của một khối dữ liệu trên bộ đệm ngăn xếp (stack).
Các thanh ghi trong nhóm thanh ghi Điều khiển và Trạng thái được sử dụng để điều khiển luồng xử lý của CPU và lưu trữ các thông tin quan trọng về trạng thái của CPU, trong khi các thanh ghi trong nhóm thanh ghi Dữ liệu được sử dụng để lưu trữ và xử lý các dữ liệu và địa chỉ trong bộ nhớ và bộ đệm ngăn xếp.