Вопрос № 88031: Добрый день.
Для каких целей используют @DATA? Что это?
Вот фрагмент кода, который совершенно не могу понять:
mov ax,@DATA
mov ds,ax
mov es,ax
..
Вопрос № 88.031
Добрый день.
Для каких целей используют @DATA? Что это?
Вот фрагмент кода, который совершенно не могу понять:
mov ax,@DATA
mov ds,ax
mov es,ax
Отправлен: 22.05.2007, 11:32
Вопрос задал: Lazar (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Lazar!
DATA это есть сегментный адрес. В данном случае Вы определяете сегментные регистры.
следующие записи одинаковы
mov ax,@DATA
mov ds,ax
mov es,ax
mov ax,seg DATA
mov ds,ax
mov es,ax
Удачи!
--------- И только наступив на грабли мы преобретаем драгоценный опыт!
Синоним для сегмента данных. Типа глобальной переменной, в ней хранится число.
успiхiв у всiх починаннях !
--------- Знания - сила
Ответ отправил: Евгений Иванов (статус: Профессор) Россия, Нижний Новгород Тел.: +79519145721 Организация: M2Media.ru Адрес: Нижний Новгород, ул.Малая Ямская WWW:Eugene Ivanov ICQ: 214889076 ---- Ответ отправлен: 22.05.2007, 11:55
Отвечает: An42
Здравствуйте, Lazar!
При загрузки программы в память, автоматически инициализируется сегмент кода CX и по адресу CX:[0000] будет находится первая команда в программе.
Сегмент DS и ES при загрузке имеют адрес префикса программного сегмента PSP который меньше адреса сегмента кода на 10 параграфов т.е. на 100h байт.
Поэтому если не проделать инициализацию сегментов DS и ES командами:
mov ax,@DATA
mov ds,ax
mov es,ax
то вы будете работать с данными которые находятся в PSP, а не те которые вы прописали в своей программе.
Удачи
Ответ отправил: An42 (статус: 3-ий класс)
Ответ отправлен: 23.05.2007, 11:00
Отвечает: P@lach
Здравствуйте, Lazar!
В этом фрагменте мы заносим в ds адрес стека данных!!!
Ответ отправил: P@lach (статус: 3-ий класс)
Ответ отправлен: 24.05.2007, 04:44