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-х байтные данные, а затем - все байты и строки.
Соответственно, _________________ Не злись на видовс, всяк в нее входящий! |
|