| STATYSTYKI |
Od 06.09.2000
|
Optymalizacja: 1024x768, IE5 |
|
| Rejestry procesora 16,32-bitowe |
Rejestry ogólnego przeznaczenia (uniwersalne) 16-bitowe
| Rejestr | Podział na rejestry 8-bitowe | ang. znaczenie | Znaczenie | Przeznaczenie |
| AX | AH, AL | Accumulator | Akumulator | Wykorzystywany przy operacjach arytmetycznych i logicznych oraz w obsłudze portów |
| BX | BH, BL | Base Register | Rejestr bazowy | Używany do adresowania pamięci |
| CX | CH, CL | Counter Register | Licznik | Wykorzystywany jako licznik w pętlach i operacjach na łańcuchach. Rejestr CL może być wykorzystywany w operacjach przesuwania bitów |
| DX | DH, DL | Data Register | Rejestr danych | Wykorzystywany przy operacjach na portach (wysyłanie, odbieranie danych z portów) oraz podczas mnożenia i dzielenia |
Rejestry z literkami L - light i H - hight zawierają odpowiednio młodsze i starsze bajty.
Rejestry segmentowe 16-bitowe
| Rejestr | ang.znaczenie | Znaczenie | Przeznaczenie |
| CS | Code Segment | Rejestr segmentu kodu | Zawiera segment aktualnie wykonywanego rozkazu |
| SS | Stack Segment | Rejestr segmentu stosu | Zawiera segment stosu |
| DS | Data Segment | Rejestr segmentu danych | Zawiera segment z danymi (nie zawsze), jest wykorzystywany także przy operacjach na łańcuchach |
| ES | Extra Segment | Rejestr segmentu dodatkowego | Zawiera segment np. przy operacjach przesyłania łańcuchów |
Rejestry indeksowe 16-bitowe
| Rejestr | ang. znaczenie | Znaczenie/Przeznaczenie |
| SI | Source Index | Rejestr indeksujący pamięć oraz wskazujący obszar, z którego przesyła się dane |
| DI | Destination Index | Rejestr indeksujący pamięć oraz wskazujący obszar, do którego przesyłamy dane |
Rejestry wskaźnikowe 16-bitowe
| Rejestr | ang.znaczenie | Znaczenie/Przeznaczenie |
| SP | Stack Pointer | Wskaźnik stosu |
| BP | Base Pointer | Rejestr używany do adresowania pamięci |
| IP | Instruction Pointer | Wskaźnik instrukkcji,np. pod debugerem wskazuje na aktualny kod instrukcji |
Rejestr znaczników 16-bitowy
| Nr bitu w bajcie | Znacznik | ang. znaczenie | Znaczenie | Opis |
| 0 | CF | Carry Flag | Znacznik przeniesienia | Przyjmuje wartość 1, gdy przy odejmowaniu nastąpiła pożyczka, lub przy dodawaniu wystąpiło przeniesienie. Do rejestru CF przechodzi bit przesuniety poza rejestr lub komórki w wyniku operacji przesuniecia bitowego. Zawartość CF można zmienić instrukcjami: CLC- wpisuje 0 do CF STC - wpisuje 1 do CF CMC - neguje zawartość CF |
| 1 | --- | - | - | - |
| 2 | PF | Parity Flag | Znacznik parzystości | Przyjmuje wartość 1, gdy wynik operacji ma parzystą liczbę bitów o wartości 1, w przeciwnym wypadku przyjmuje wartośc 0 |
| 3 | --- | - | - | - |
| 4 | AF | Auxiliary Carry Flag | Pomocniczy znacznik przeniesienia | Działa podobnie jak CF lecz "reaguje" na przeniesienie/pożyczkę z bitu 3 na 4; wykorzystywany przy operacjach na spakowanych liczbach dziesiętnych |
| 5 | --- | - | - | - |
| 6 | ZF | Zero Flag | Znacznik zera | Przyjmuje wartość 1, gdy wynik operacji jest zerem, w przeciwnym wypadku przyjmuje wartość 0 |
| 7 | SF | Sign Flag | Znacznik znaku | Przyjmuje wartość 1, gdy wynik operacji jest liczbą ujemną, w przeciwnym wypadku przyjmuje wartość 0 |
| 8 | TF | Trap Flag | Znacznik pracy krokowej | Wykorzystywany przez debugery; określa czy po każdej wykonanej instrukcji procesora wywoływane jest przerwanie pracy krokowej |
| 9 | IF | Interrupt Flag | Znacznik przerwań | Gdy IF=0 to procesor ignoruje przerwania; polecenie CLI - wpisuje 0 do IF; a polecenie STI - wpisuje 1 do IF.Zawartość IF można zmienić instrukcjami: CLI - wpisuje 0 do IF STI - wpisuje 1 do IF |
| 10 | DF | Direction Flag | Znacznik kierunku | Steruje zmianą rejestrów indexsowych przy operacjach powtarzających; jeśli DF=1 to zawartość rejestrów będzie zmniejszana, w przeciwnym wypadku będzie zwiększana. Zawartość DF można zmienić instrukcjami: CLD - wpisuje 0 do DF STD - wpisuje 1 do DF |
| 11 | OF | Overflow Flag | Znacznik nadmiaru | Przyjmuje wartość 1, gdy wynik operacji nie mieści się w rejestrze lub komórce pamięci oraz gdy zmieniony zostanie bit znaku argumentu po wykonaniu operacji przesunięcia bitów, w przeciwnym wypadku przyjmuje wartość 0 |
| 12 | --- | - | - | - |
| 13 | --- | - | - | - |
| 14 | --- | - | - | - |
| 15 | --- | - | - | - |
Rejestry 32-bitowe
Są to rejestry procesorów 386,486 i nowszych. Otrzymujemy je dodając literkę E przed nazwą rejestrów 16-bitowych.
Mamy więc rejestry: EAX, EBX, ECX, EDX, EBP, ESI, EDI .I tak np. rejestr AX stanowi mniej znaczące 16 bitów rejestru EAX.
Przy rejestrach 32-bitowych niemożliwa jest pośrednia (np. poprzez inny rejestr) zmiana bardziej znaczących 16 bitów rejestru.Można to jednak zrobić
wstawiając do rejestru wartość bezpośrednią lub z komórki pamięci, albo przesuwając bity. Należy tutaj podkreślić, że np. zmiana AX pociąga za sobą zmianę rejestru EAX.
Rejestry 32-bitowe są bardzo pojemne, możemy bowiem w nich przechowywać max. wartość FFFFFFFFh. Dane w tych rejestrach są zapisywane według notacji Intela
od prawej do lewej.
Przy procesorach 386,486 dochodzą nam także dwa nowe rejestry segmentowe: GS i FS.
<<
|
|