|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 24, 2003 12:21:12 Привет. Ну думал, что, что-то спрошу по этой теме Итак. я хочу для цикла зделать так: ALIGN 16 Компилятор не пускает, говорит, что выравнивание у сегмента меньше. Я делаю так _TEXT segment PAGE public 'CODE' Получаю пощёчину .\Calculation\asm\asm_fun.asm(20) : error A2015: segment attributes cannot change : Alignment ALIGN 16 ^(( Как быть? |
|
|
Дата: Сен 24, 2003 12:40:03 В fasm'е и tasm'е проблем с этим не возникает. В fasm'е макрос для выравнивания выглядит так: macro align value { rb (value-1) - (RVA $ + value-1) mod value } Может и в масме нечто подобное можно сделать? А вы еще спрашиваете почему мы fasm используем 8) |
|
|
Дата: Сен 24, 2003 12:53:39 Black_mirror Вы наврено не поняли.. В MASM есть ALIGN Но Align без смысленно, если сегмент выровнен по меньшей границе, чем ALIGN |
|
|
Дата: Сен 24, 2003 13:03:19 Edmond Дык у тебя, наверное .386 в начале стоит :)) Поставь побольше - .686, например, даже четверка подойдет |
|
|
Дата: Сен 24, 2003 13:04:35 Это ошибка компилятора или линкера? Возможно сегмент TEXT уже был объявлен с другим выравнивание. А по умолчанию у него вроде выравнивание 16 байт. |
|
|
Дата: Сен 24, 2003 13:14:34 · Поправил: Four-F [ Edmond: Как быть? ] Очень просто - поменять .386 на .486. Тогда ALIGN 16 будет работать. Если ты конечно не собираешься свою прогу не 386 камне гонять ;-) ...Тьфу, блин, опять опередили ;-) |
|
|
Дата: Сен 24, 2003 13:52:27 masquer ОК, ну 386 да :))) А почему так? Кто объяснит? |
|
|
Дата: Сен 24, 2003 13:54:06 Four-F ...Тьфу, блин, опять опередили ;-) :)) Это нужно в FAQ.. Я тут пишу Мини ДБ для FAQ.. :)) |
|
|
Дата: Сен 24, 2003 15:40:26 Аркадий Белоусов: EH> Edmond: Как быть? ] EH> Очень просто - поменять .386 на .486. Тогда ALIGN 16 будет работать. Если ты EH> конечно не собираешься свою прогу не 386 камне гонять ;-) Ты хочешь сказать, что для решения проблемы тебе посоветовали применить директиву .486 вместо .386? Чушь полная. Разница только в том, что .486 допускает использование инструкций, имеющихся на 486-м, но не имеющемихся на 386. Всё. На выравнивание эта инструкция никак не влияет. |
|
|
Дата: Сен 24, 2003 15:59:12 · Поправил: Four-F [ Аркадий Белоусов: На выравнивание эта инструкция никак не влияет. ] На выравнивание может и не влияет, а на использование директивы ALIGN влияет. Мне лень по докам рыть, но в любом случае, это работает и ты можешь сам легко в этом убедиться. |
|
|
Дата: Сен 24, 2003 16:40:42 Edmond А кто такой Аркадий Белоусов? :-) |
|
|
Дата: Сен 24, 2003 19:03:07 Скорее всего _TEXT идёт как зарезервированный сегмент и его аттрибуты нельзя трогать. |
|
|
Дата: Сен 24, 2003 19:04:24 Asterix Вы не знаете Аркадия??? Гм.. Ну ничего, скоро узнаете :))) |
|
|
Дата: Сен 24, 2003 19:21:33 AsmGuru62 Да??? А как де С++??? Хм.. Неее |
|
|
Дата: Сен 24, 2003 20:11:05 Asterix На "RTFM Helpers" не подписывался!? Ай-яй-яй. Edmond А почему господин Белоусов не участвует в форуме? (Он вообще по форумам не ходит) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.066 |