Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2012, 10:53   #1
RedCrystal
 
Регистрация: 13.03.2012
Сообщений: 4
Вопрос ASSUME & DS

Доброго времени суток.
Читаю Питера Абеля. Фрагмент кода:
код Ассемблера
Код:
...
ASSUME CS:CODE,DS:DATA,SS:STACK
MOV AX,DATA
MOV DS,AX
...
Абель пишет, что после ASSUME обязательно нужно присваивать регистру DS нужный адрес сегмента данных (вторая и третья строчки кода). Я не понял этого... Мы ведь в ASSUME уже присвоили регистрам CS, DS и SS нужные адреса (насколько я понял)... Тогда для чего выполнять повторное присваивание регистру DS? Мы ведь для CS и SS этого не делаем. Чем так выделился DS?

Best Regards
RedCrystal вне форума Ответить с цитированием
Старый 15.03.2012, 10:30   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
ASSUME сегмент:имя[,сегмент:имя].
ASSUME сегментный_регистр:NOTHING
ASSUME NOTHING

Задает сегментный регистр, который будет использоваться для
вычисления действующего адреса для всех меток и переменных, опре-
деленных для сегмента или группы сегментов с указанным именем.
Ключевое слово NOTHING отменяет связь между указанным сегментным
регистром и именем сегмента или группы.
Т.е. компилятор будет при встрече именованных значений из DATA в результирующем коде создавать обращение к памяти типа DS:[Смещение ячейки] и аналогично с другими сегментами. А вот инициализация сегмента данных нужна потому, что по-умолчанию при запуске программы сегментные регистры указывают на сегмент кода.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
восстановление веток реестра ответственных за скрытые папки(Hidden && SuperHidden) Пепел Феникса Операционные системы общие вопросы 2 26.03.2012 00:30
Как убрать замену символьных ссылок(
 и т.д.) при сериализации(печати) xml? hard-t JavaScript, Ajax 0 19.01.2012 09:50
Вопрос по поводу меню на сайте, html&css&js antoxa22 HTML и CSS 14 30.12.2011 11:02
TForm & TImage & PNG & Прозрачность delphi_beginner Общие вопросы Delphi 7 19.09.2009 08:46
Просто не понимаю б чём проблема!!!!!!!(char* && index) artush1984 Общие вопросы C/C++ 12 30.05.2009 03:30