Мысалдар:
mov SI, offset string
|
; SI регистріне string ұяшығының салыстырмалы адресі жүктеледі
|
mov AX, [SI]
|
; string ұяшығындағы мәліметтер AX регистріне жүктеледі
|
inc [SI]
|
; string ұяшығының мәні артады
|
mov BX, [SI]
|
; string ұяшығының жаңа мәні BX регистріне жүктеледі
|
mov DI, SI
|
; string ұяшығының салыстырмалы адресі DI көшіріледі
|
136
Ассемблерде ығыстырылуларды келесідей де көрсетуге бо- лады: мысалы, 4 [ВХ] орнына [ВХ+4], 4+ [ВХ] немесе [ВХ] +4.
Ескерту. Әрине, мұндай әртүрлі белгілеулер тек қолдану- шыны шатастырады, егер біз деассемблерлік программалармен
жұмыс істегіміз келсе, оны білу керек.
Стекке қол жеткізу барысындағы ығыстырылуы бар базалық адрестеуге байланысты мысалды қарастырып көрейік:
ығыстыру = {SP, BP, DI, SI, BX} + командадан ығыстыру
мұндағы тік жақша [] оператор болып табылады. Адрес тік жақ- шаның және оның сыртындағысының қосындысы ретінде есеп- теледі.
array db 0, 10, 20, 30, 40, 50, 60; мәліметтердің сегментінде келесі массив анықталсын:
Командалардың тізбегі:
mov BX,5
mov AL,array [5] ; AL регистріне 5 элементті жүктеу, яғни 50. Дәл сондай нәтижені келесі командалардың тізбегінен аламыз: mov BX,offset array
mov AL,5 [BX]
немесе
mov AL, [BX] +5 mov AL, [BX+5]
Базалық-индекстік режим
Адрестелетін жады (байт немесе сөз). Операндтың салыс- тырмалы адресі келесі регистрлердің сақтайтын мәліметтерінің қосындысы ретінде анықталады:
ығыстырылу [BX] [SI]
|
(DS: ығыстырылу [BX] [SI] білдіреді)
|
ығыстырылу [BX] [DI]
|
(DS: ығыстырылу [BX] [DI] білдіреді)
|
ығыстырылу [BP] [SI]
|
(SS: ығыстырылу [BP] [SI] білдіреді)
|
ығыстырылу [BP] [DI]
|
(SS: ығыстырылу [BP] [DI] білдіреді)
|
Осы көрсетілген жағдайларды келесідей де жазуға болады:
Ығыстырылу [BX+SI]
|
[Ығыстырылу +BX+SI]
|
[BX+SI] + Ығыстырылу
|
Бұл кеңінен таралған адрестеу әдісі болып табылады, әсіресе массивтермен жұмыс барысында. Онда екі регистр пайдаланы- лады, олардың біреуі базалық (ВХ немесе ВР), ал біреуі – инде- кстік (SI немесе DI). Әдетте регистрлердің біреуінде массив ад- ресі, ал басқасында индекс және екеуінде не орналасқанының ешқандай айырмашылығы жоқ.
Достарыңызбен бөлісу: |