Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

80x86, выравнивание

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Hardware
Предыдущая тема :: Следующая тема  
Автор Сообщение
Simona
Гость





СообщениеДобавлено: Пт Окт 24 2003 09:58    Заголовок сообщения: 80x86, выравнивание Ответить с цитатой

Vsem privet! Narod, kto znaet, gde mozhno pochitat' pro viravnivanije operandov (chjotnij i nechjotnij adress)? Help pls.
Вернуться к началу
mare



Зарегистрирован: 12.09.2003
Сообщения: 222

СообщениеДобавлено: Пт Окт 24 2003 16:44    Заголовок сообщения: Re: 80x86, выравнивание Ответить с цитатой

Посмотри в описании программирования на ассемблере для IBM PC/AT.

Общий принцип в том, что данные в памяти желательно выравнивать для ускорения работы процессора при выборке и исполнении команд.
Все сегменты данных программы, начиная с нулевого байта, при загрузке в память для исполнения, выравниваются по границе 16 байт (четыре последних бита адреса будут обязательно нули).
Исходя из этого, уже на этапе компиляции программы становится ясно, как будут выровнены данные впоследствии, во время исполнения.
Соответственно, требование о выравнивании данных будет выполнено, если при компиляции программы:
1. Компилятору указывают, что данные надо выравнивать (смотри опции и команды по управлению размещением данных). Если заданы соответствующие опции, то при последовательном описании данных в цепочке (слово-байт-слово) будет выделено не 5 байт, а шесть, при этом байт со смещением 3 будет нулевой и "ничей" (он пропускается компилятором).
2. Вы, как программист, не обманываете компилятор. Т.е. вы работаете с данными, требующими выравнивания по границе слова (word), именно как словами,т.е. описанными как word, а не с данными, описанными как byte и т.п..
3. Старайтесь взять за правило при описании данных в программе сначала описывать 16-байтные данные, затем 8-ми, 4-х, 2-х байтные данные, а затем - все байты и строки.


Соответственно,
_________________
Не злись на видовс, всяк в нее входящий!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Hardware Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...