4087490678

4087490678



O 8 rejestrów 64-bitowych: R8,R15

♦    rejestry indeksowe:

0 indeks źródłowy:

RSI (64 bity) = ESI (młodsze 32 bity) + starsze 32 bity,

ESI (32 bity) = SI (młodsze 16 bitów) + starsze 16 bitów,

SI (16 bitów) = SIL (młodsze 8 bitów) + starsze 8 bitów (tylko tryb 64-bit)

0 indeks docelowy:

RDI (64 bity) = EDI (młodsze 32 bity) + starsze 32 bity,

EDI (32 bity) = DI (młodsze 16 bitów) + starsze 16 bitów,

DI (16 bitów) = DIL (młodsze 8 bitów) + starsze 8 bitów (tylko tryb 64-bit)

Rejestry indeksowe najczęściej służą do operacji na długich łańcuchach danych, w tym napisach i tablicach.

♦    rejestry wskaźnikowe:

0 wskaźnik bazowy:

RBP (64 bity) = EBP (młodsze 32 bity) + starsze 32 bity,

EBP (32 bity) = BP (młodsze 16 bitów) + starsze 16 bitów.

BP (16 bitów) = BPL (młodsze 8 bitów) + starsze 8 bitów (tylko tryb 64-bit) Najczęściej służy do dostępu do zmiennych lokalnych danej funkcji.

0 wskaźnik stosu:

RSP (64 bity) = ESP (młodsze 32 bity) + starsze 32 bity,

ESP (32 bity) = SP (młodsze 16 bitów) + starsze 16 bitów.

SP (16 bitów) = SPL (młodsze 8 bitów) + starsze 8 bitów (tylko tryb 64-bit)

Służy do dostępu do stosu (o tym nieco później).

0 wskaźnik instrukcji:

R1P (64 bity) = EIP (młodsze 32 bity) + starsze 32 bity,

EIP (32 bity) = IP (młodsze 16 bitów) + starsze 16 bitów.

Mówi procesorowi, skąd ma pobierać instrukcje do wykonywania.

2.    rejestry segmentowe (wszystkie 16-bitowe) - tych najlepiej nie dotykać w Linuksie:

♦    segment kodu CS - mówi procesorowi, gdzie znajdują się dla niego instrukcje.

♦    segment danych DS - ten najczęściej pokazuje na miejsce, gdzie trzymamy nasze zmienne.

♦    segment stosu SS - dzięki niemu wiemy, w którym segmencie jest nasz stos. O tym, czym w ogóle jest stos, powiem w następnej części.

♦    segment dodatkowy ES - zazwyczaj pokazuje na to samo, co DS - na nasze zmienne.

♦    FS i GS - nie mają specjalnego przeznaczenia. Są tu na wypadek, gdyby zabrakło nam innych rejestrów segmentowych.

3.    rejestr stanu procesora: FLAGI (16-bitowe), E-FLAGI (32-bitowe) lub R-FLAGI (64-bitowe).

Służą one przede wszystkim do badania wyniku ostatniego przekształcenia (np. czy nie wystąpiło przepełnienie, czy wynik jest zerem, itp.). Najważniejsze flagi to CF (carry flag - flaga przeniesienia), OF (overflow flag - flaga przepełnienia), SF (sign flag - flaga znaku), ZF (zero flag - flaga zera), IF (interrupt flag - flaga przerwań), PF (parity flag - flaga parzystości), DF (direction flag - flaga kierunku).

Język asembler i rejestry procesora



Wyszukiwarka

Podobne podstrony:
7 Akumulator Rejestr indeksowy Licznik rozkazów Wskaźnik stosu Rejestr stanu —
Slajd12 Rejestry procesora rodziny 8086 SI- indeks źródłowy (source index,) DI- iudeks docelowy (des
F    -J 1.1 q F^q F fp “ J iJpP1 p L - indeks Laspeyersa O P - indeks Paascha n Tabli
Stretching s 1 Indeks ćwiczeń Oto zestawienie wszystkich ćwiczeń zawartych w tej książce. Możesz
Stretching s 2 Indeks ćwiczeńTwarz str. 91 Ćwiczenia przy telefonie str. 41Stretching spontaniczny s
Stretching s 4 Zalecana bibliografiaBIULETYNY POŚWIĘCONE RSI CTD News P.O. Box 980, Horsham, PA 1904
Użycie litery R przed symbolem rejestru, np. RCX, oznacza rejestr 64-bitowy, dostępny tylko na proce
Image137 Rys. 4.83 Zespół rejestrów buforowych o pojemności 8 słów 8-bitowych 2 rozdzielacza Rys. 4.

więcej podobnych podstron