Assembler proqramlaşdırma dili

Miqyaslaşdırmaqla bilavasitə ünvanlaşdırma

Miqyaslaşdırmaqla bilavasitə ünvanlaşdırma

Miqyaslaşdırma 32 mərtəbəli yaddaş operandlarını do­la­yı ünvanlaşdırmaq üçün yararlıdır. Miqyaslaşdırma gös­tə­ri­lən indeks registrini ədədə vurmaqla aşağıdakı kimi yara­dılır:

32_ mərtəbəli_ indeks_ registri*vuruq

Burada vuruq kimi konstant və ya ifadə götürülə bilər. Praktiki olaraq konstant kimi massivin elementlərinin uzunluq göstəricisi – bayt, söz, ikiqat söz və ya dördqat sözə uyğun olaraq 1, 2, 4 və ya 8 seçilir. Məsələn,

MOV EAX, [EBX][EDX*2]

əmrində EDX indeks registri 2 ədədinə görə miqyaslaşdırılıb. Bu ünvanlaşdırma metodunun köməyilə söz, ikiqat söz və ya dördqat söz massivinin elementini, indeks registrinin qiymətini bir vahid azaltmaqla, oxumaq mümkündür:

MOV EAX, [ESI*4]+ table

Məsələn, əgər ESI registrinə 2 yazsaq, ikiqat sözdən təşkil olunmuş table adlı cədvəlin 3-cü elementinin tapılması üçün bu əmrin icra sxemi aşağıdakı kimi olar (table dəyişənin ünvanı DS:0002 olması nəzərdə tutulur):