Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 762
от 28.05.2007, 10:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 382, Экспертов: 32
В номере:Вопросов: 1, Ответов: 4


Вопрос № 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

Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 22.05.2007, 11:40

Отвечает: Евгений Иванов
Здравствуйте, Lazar!

Синоним для сегмента данных. Типа глобальной переменной, в ней хранится число.

усп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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное