Wpisuję w edytorze instrukcję, która po kompilacji i uruchomieniu ląduje w segmencie kodu, skąd instrukcje są pobierane i przetwarzane.
Moje pytanie dotyczy instrukcji:
add ax,30
Ten rozkaz ma 2 bajty, bezpośrednio wpisuje do rejestru ax wartość 30, interesuje mnie jak zostanie zakodowany i w jakiej postaci wpisany do segmentu kodu w pamięci.
Bajt kodu operacji (mnemonik) to 0x81 (100000001), pozostaje drugi bajt w którym 2 najstarsze bity to modyfikator trybu adresowania, 3 bity to jeden operand czyli rejestr ax (000). Pozostają 3 bity na drugi czyli 30 ale ta liczba binarnie to 11110.
W jaki sposób taki rozkaz zostanie zakodowany i zapisany w pamięci skoro liczba powinna zostać pobrana bezpośrednio z rozkazu, czy jest jakoś doklejona jako kolejne bajty czy jest to zrealizowane jakoś inaczej?