Online: 0x017 (23)
haker.info  — Etyczny hacking_
Spreading knowledge like a virus.

 haker.info Baza wiedzy

Asembler x86/x64
  • Kodowanie rozkazów procesora

Rozkaz procesora w formie tekstowej (np. MOV, ADD, XOR...) nazywany jest mnemonikiem. Natomiast zakodowana warto艣膰 liczbowa instrukcji to kod operacyjny (opkod). Na rysunku poni偶ej przedstawiono poszczeg贸lne elementy zakodowanej instrukcji procesora w formie schematu. Nie wszystkie sk艂adowe s膮 wymagane. Istniej膮 instrukcje (NOP itp.), kt贸re maj膮 tylko sam opkod, czyli ich zakodowana forma to jeden bajt o okre艣lonej warto艣ci.

Kodowanie instrukcji procesora

Poni偶ej przedstawiono opis poszczeg贸lnych element贸w formatu kodowania instrukcji procesora x64.
  • Prefiksy (w tym prefiks REX) 鈥 prefiks REX pozwala na dost臋p do rozszerzonych oraz dodatkowych rejestr贸w procesora, czyli tych wprowadzonych w architekturze x64. Inne prefiksy zwi膮zane s膮 np. z operacjami na napisach czy te偶 modyfikacj膮 rozmiaru operandu oraz adresu.
  • Kod operacyjny (opkod) 鈥 warto艣膰 przypisana okre艣lonej instrukcji o rozmiarze od jednego do trzech bajt贸w.
  • ModR/M 鈥 bajt ten jest zwi膮zany z typem adresowania oraz rodzajem operand贸w.
  • SIB 鈥 zwi膮zany z bajtem ModR/M. Czasami u偶yte adresowanie wymaga tego bajtu. Zawiera trzy pola: skala, indeks oraz baza. Adres efektywny (liniowy) jest obliczany jako: baza + (indeks * skala) + ewentualne przesuni臋cie.
  • Przesuni臋cie (ang. offset) 鈥 nazywane te偶 jako przemieszczenie (ang. displacement) to warto艣膰 liczbowa, kt贸ra jest dodawana do podstawy adresu.
  • Warto艣膰 natychmiastowa (ang. immediate) 鈥 je艣li rozkaz procesora u偶ywa warto艣ci natychmiastowej jako operandu to znajduje si臋 ona w tym polu.

Przyk艂adowe rozkodowane instrukcje procesora przedstawiono na rysunku poni偶ej.

Opkod mnemonik

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.