· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› ВЫРАВНИВАНИЕ

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Сен 5, 2003 19:49:52

ну а что тут такого!!!! Все же когда то в первый раз


Дата: Сен 5, 2003 20:03:48

emergenter
То что первый это понятно.
Это приветствуется. Но то, что немного пошевелить извинками прежде чем спрашивать это ведь тоже надо А?
Вот взяли бы маленький примерчик написали с массивом...
по перемножению элементов и всё.. Да, вы бы даже не вопрос не задавали.. Оно само дошло бы...
Ээээххх :)))


Дата: Сен 5, 2003 20:58:29

"...как лучше всего в коде это все дело выровнять?"
===
Просто использовать директиву ALIGN:
Align 32  ; --- or 16, or 8, or 4
Function Proc

  ...

Align 32
LoopLabel:
  ...
  Loop  LoopLabel

  ...

  Ret
Function EndP

Сегмент, в котором происходит выравнивание должен также иметь выравнивание на ту же величину или выше.


Дата: Сен 5, 2003 21:07:00

AsmGuru62
СПАСИБО!!! Очень помог! Все разъяснилось!!


Дата: Сен 6, 2003 15:00:55

Мне если нужно выровненно что-то записать в память, а гарантии того, что адрес выровнен - нет, то можно так (если в eax - указатель):
add eax, 4
and eax, -4


Дата: Сен 8, 2003 11:41:06

add eax, 3
and eax, -4


Дата: Сен 8, 2003 11:52:17 · Поправил: masquer

Four-F
Это смотря в какую сторону ровнять нужно :) Ну, это в случае, если оно было уже выровнено.


Дата: Сен 8, 2003 15:21:43

Так в том то и дело, что если уже выровнено по границе 4, то:

add eax, 4
and eax, -4

просто прибавит еще 4 байта, что не требуется, а:

add eax, 3
and eax, -4

ничего делать не станет.

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.047