Шаг 9 - Указатель на данные

Итак, мы знаем, что регистр DS указывает на сегмент данных, но ведь данных может быть много, например, много строк, вот для этого и используется адресация сегмент - смещение. Вообще подобная адресация была создана в связи с необходимостью адресации к большему диапазону чем позволяет число 16 бит. В нашем случае нам нужно еще и получить указатель на данные. И мы это делали.

DATASEG 
Hellostr DB 'Hello First Step Site ' 
CODESEG 
start: 
	......
	mov dx,offset Hellostr 

Мы использовали offset это команда умеет вычислять как смещены определенные данные относительно сегмента данных в нашем случае строка. При сборки приложения в это место будет поставлено конкретное число.

9_1.gif (2112 b)

А вот комбинация DS - смещение(эти число) будут указывать нам на местоположение строки. Вот смотрите

9_2.gif (7896 b)

После того как регистр DS выставлен нам больше нечего не волнует. Мы просто указываем относительно него смещение в данном случае (001С) и получаем первую букву нашей строки. Вот именно выяснением этого числа и занимается offset.

Итак, у наших данных есть понятие смещение, которое высчитывается относительно регистра DS. Для этого есть команда offset

Offset имя_переменной

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 27.11.2001