Prefiksi. šie mašīnu - komandas elementi nav obligāti. Katra prefiksa izmērs ir viens baits programmas kodā šie prefiksi tiek izvietoti pirms vajadzīgas komandas. Prefiksu nozīme - komandas izpildāmās operācijas modifikācija. Lietotāja programma var saturēt šādus prefiksus:
Segmenta nomaiņas prefikss. Tiešā formā norada kurš segments tiks izmantots šajā komandā datu vai steka adresācijai. Prefikss noliedz, segmenta pēc noklusēšanas izmantošanu. Segmenta nomaiņas prefiksiem ir šādas vērtības: 2Eh - segmenta nomaiņa uz cs (code segment. Procesoros Pentium 4 šāds prefikss pirms nosacītas pārejas komandas nozīmē, ka lēciens vis-drizāk nebūs), 36h - segmenta nomaiņa uz ss (stack segment), 3Eh - segmenta nomaiņa uz ds (data segment. Procesoros Pentium 4 šāds prefikss pirms nosacītas pārejas komandas nozīmē, ka lēciens vis-drīzak būs), 26h - segmenta nomaiņa uz es (extended segment), 64h - segmenta nomaiņa uz fs, 65h - segmenta nomaiņa uz gs.
Adreses izmēra prefikss (67h) precizē adreses izmēru (32- vai 16-bitu). šis prefikss izmaina tas komandas operandu adreses izmēru(s), pirms kuras viņš atrodas. Ja komanda pēc noklusēšanas uzstādīta 16-bitu efektīva adrese, tad šis prefikss nomainīs to uz 32-bitu efektīvo adresi. Un otrādi, ja komanda pēc noklusēšanas uzstādīta 32-bitu efektīva adrese, tad adreses izmēra prefikss nomainīs to uz 16-bitu efektīvo adresi. Programmām griežoties pie operatīvas atminas jānorāda procesoram bāzes adresi un efektīvo adresi. Bāzes adresei jāglabājas vienā no segmentu reģistriem (cs, ds, es, ss, fs, gs), efektīva adrese var tikt norādīta tieši (baits nobīde komanda sk. zīm. 1), un netieši (nobīde glabājas viena vai vairākos reģistros, piemēram: bx, si, di, bp, sp, bx+si, bx+di, bp+si, bp+di, u.t.t., Atkarībā no komandas). Reālajā režīma izmantojas 16-bitu adresācija. Ja būs norādīts adreses izmaiņas prefikss tad griešanās pie adresēm aiz 16 bitu robežas izsauks kļūdu.
Operanda izmēra (66h) prefikss darbojas tā pat, ka adreses izmēra prefikss, taču precizē operanda izmēru nevis adresi. Prefikss norada komandas operanda izmēru (32- vai 16-bitu). Aizsargātā režīma atribūtu (operanda izmēra, adreses izmēra) vērtības nosaka izpildāmo segmentu bits D. ja bits D = 0 tad tiks izmantoti 16-bitu adresācijas un operandu izmēru režīmi, ja D = 1 tad - 32-bitu .
Atkārtošanās prefiksu izmanto rindu komandas (rindu apstrādes komandas). šis prefikss veido ciklu visu rindas elementu apstrādei. Komandu sistēma uztur divus atkārtošanās prefiksu veidus: bez nosacījuma izpilde (rep - 0f3h), kur komanda atkārtojas tik, cik to nosaka lietotājs, un ar nosacītu izpildi (repe/repz - 0f3h, repne/repnz - 0f2h), kur katra cikla pārbauda attiecīgos karodziņus, kas ļauj priekšlaicīgi iziet no cikla.
Operācijas kods. Obligātais elements aprakstošais konkrētas komandas operāciju(as). Daudzas komandas sastāv no vairākiem operāciju kodiem, kas ļauj noteikt pašreizējas operācijas nianses.
Pārējie mašin-komandas lauki nosaka izmantojamo operandu atrašanās vietu, un dažas to izmantošanas īpašības.
Adresēšanas režīma baits modr/m. si baita vērtība nosaka izmantojamo operandu formu. Operandi var atrasties atmina, viena vai divos reģistros. Ja operands atrodas atmina, tad baits modr/m nosaka komponentes (nobīdi, bāzes un indeksa reģistrus), kuras izmanto efektīvas adreses aprēķināšanai.…