MOV AX, 89 ; prześlij do rejestru AX liczbę 89 MOV DX, 10 ; prześlij do rejestru DX liczbę 10 ADD AX, DX ; dodaj 89 i 10, a wynik prześlij do AX
Przykładowy rejestr RAX
|--------------------------RAX------------------------------------|
| |------------EAX------------------|
| | |-------AX-------|
00000000000000000000000000000000|0000000000000000|00000000|00000000
| AH | AL |
GPR = General Purpose Registers
DIV BH MOV AH, 1 ; prześlij do rejestru AH liczbę 1 MOV AL,AH ; kopiuj AH do AL DEC AL ; odejmij 1 (dekrementacja) od AL ; AX ma wartość 256
MOV BX, 6 MOV AL, [BX] ; prześlij do rejestru AL ; zawartość pamięci spod adresu 6 MOV tablica[BX], 10 ; prześlij do 10 pod adres tablica+6
MOV CX, 5 MOV AX, 0 poczatek_petli: ; etykieta ADD AX, CX LOOP poczatek_petli ; zmniejsz CX o jeden ; i jeśli CX różne od 0 skocz do etykiety
Rejestry indeksowe najczęściej służą do operacji na długich łańcuchach danych, w tym napisach i tablicach
RSI/ESI/SI indeks źródłowy
RDI/EDI/DI indeks docelowy
W trybie 32 bitowym te indeksy nie dzielą się już na 8 bitowe, w trybie 64 bitowym mamy dostęp do młodszych 8 bitów przez SIL i DIL.
Wszystkie rejestry segmentowe są 16-bitowe
W trybie 64 bitowym nie używane za wyjątkiem CS.
Aby zapisać wartość do rejestru segmentowego albo przenieść wartość pomiędzy rejestrami segmentowymi należy zrobić to pośrednio przez któryś z rejestrów ogólnego użytku.
FLAG (16-bitowe), EFLAG (32-bitowe), RFLAG (64-bitowe)
Służą one przede wszystkim do badania wyniku ostatniej operacji (na przykład czy nie wystąpiło przepełnienie, czy wynik jest zerem, itp.).
Najważniejsze flagi to :