Assembler proqramlaşdırma dili

Bazaya görə sürüşmə ilə ünvanlaşdırma

Bazaya görə sürüşmə ilə ünvanlaşdırma

Bu cür ünvanlaşdırma dolayı registrli ünvanlaşdırmanın ta­mamlanması olub, baza ünvanına nəzərən məlum sü­rüş­məyə görə verilənlərə müraciətin təşkilində istifadə olunur.

Bazaya görə sürüşmə ilə ünvanlaşdırmada operandın ef­fektiv ünvanı, baza registrinin (BX) məzmunu və ya baza gös­tərici registrinin (BP) məzmunu ilə nisbi ünvanın cəmindən alınır.

Vasitəli (dolayı) registrli ünvanlaşdırmada olduğu kimi bazaya görə sürüşmə ilə ünvanlaşdırma rejimində də İntel 80386 prosessorundan başlayaraq bütün modellərdə EAX, EBX/BX, ECX, EDX, EBP/BP, ESİ/Sİ, EDİ/Dİ və ESP registrlərindən istifadə olunur. Məsələn:

MOV AX, [BX]+4

Bu əmr AX registrinə DS registri ilə təyin olunmuş seqmentdəki bazaya görə 4 vahid sürüşmüş ([BX]+4 ünvanında yerləşən) iki baytlıq informasiyanı yükləyir.

Əmrin icra sxemi aşağıdakı kimidir:

Belə ünvanlaşmadan verilənlər strukturunun başlanğıc ünvanı registrdə olduqda, ona hər hansı elementə görə müraciət olduğu halda istifadə olunur. Məsələn:

MOV AX, [EDX+3h]

Bu əmr ünvanı EDX+3h olan yaddaş sahəsindən söz uzunluqlu veriləni AX registrinə yükləyir.

Assembler operandın bazaya görə ünvanlaşdırılmasının üç müxtəlif üsulundan istifadə edilməsinə imkan verir. Yəni, aşağıdakı əmrlər ekvivalentdir:

MOV AX, [BP]+4

MOV AX, 4[BP]

MOV AX, [BP]4

Bazaya görə sürüşmə ilə ünvanlaşdırma rejiminin köməyi ilə birölçülü baytlar massivinə müraciəti təşkil et­mək olar. Onda sürüşmənin qiyməti massivin başlanğıcına nəzərən hesablanır. Massivin elementləri söz və ya ikiqat söz uzunluğunda olarsa, onda baza registrinin məzmununu uyğun olaraq ikiyə və ya dördə vurmaq lazımdır.