Online: 0x039 (57)
haker.iиfø  — Etyczny hacking_
Spreading knowledge like a virus.

 haker.info Baza wiedzy

Asembler x86/x64

Rejestry można sobie wyobrazić jako specjalna, wewnętrzna pamięć w procesorze. Niektórzy nie lubią tu określenia „pamięć”, gdyż rejestrów się nie adresuje. Mimo wszystko można je porównać do „pojemników na dane komputerowe”. I to takich do których jest bardzo szybki dostęp, więc operacje z ich użyciem wykonywane są bardzo szybko.

Bezpośredni dostęp do rejestrów jako programiści możemy uzyskać w języku Asembler. Odwołuje się do nich poprzez ich nazwy (np. rax, rbx, rcx...).

Jeśli na przykład chcemy wykonać dodawanie to wpisujemy dwie wartości do dwóch różnych rejestrów i wykonujemy na nich operację sumowania odpowiednią instrukcją procesora (wynik też będzie w określonym rejestrze).

Zatem za pomocą rejestrów procesora możemy przekazywać dane do przetworzenia, ale też np. uzyskać dane wynikowe, które zwraca określona instrukcja czy funkcja. Jeśli dane nie mieszczą się w rejestrze, czyli np. jest to długi ciąg tekstu, to wykonujemy wtedy adresowanie. Fragment tekstu do przetworzenia umieszczamy w zmiennej (takiej „komórce” pamięci) o wymyślonej nazwie, a do rejestru podajemy tylko adres do tego miejsca w pamięci (przeważnie jest to nazwa tej zmiennej poprzedzona specjalną dyrektywą pobierającą adres).

Dawid Farbaniec

Wykaz literatury (bibliografia)

  • Advanced Micro Devices Inc., 2017 – AMD64 Architecture Programmer's Manual
  • Intel Corporation, 2019 – Intel 64 and IA-32 Architectures Software Developer's Manual
  • Randall Hyde, 2010 – Asembler. Sztuka programowania. Wydanie II, ISBN: 9788324628544
Wszystkie treści umieszczone na tej witrynie są chronione prawem autorskim. Surowo zabronione jest kopiowanie i rozpowszechnianie zawartości tej witryny bez zgody autora. Wszelkie opublikowane tutaj treści (w tym kody źródłowe i inne) służą wyłącznie celom informacyjnym oraz edukacyjnym. Właściciele tej witryny nie ponoszą odpowiedzialności za ewentualne niezgodne z prawem wykorzystanie zasobów dostępnych w witrynie. Użytkownik tej witryny oświadcza, że z zamieszczonych tutaj danych korzysta na własną odpowiedzialność. Wszelkie znaki towarowe i nazwy zastrzeżone zostały użyte jedynie w celach informacyjnych i należą wyłącznie do ich prawnych właścicieli. Korzystając z zasobów witryny haker.info oświadczasz, że akceptujesz powyższe warunki oraz politykę prywatności.