Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт апр 19, 2024 23:49

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: ALIGN в SPF
СообщениеДобавлено: Ср фев 07, 2007 11:11 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
ALIGN - Выравнивает указатель области данных если необходимо.
ALIGNED - Возвращает первый выровненный адрес по данному адресу.
ALIGN-NOP - можно по подробнее о этом??? (я думаю что происходит сдвиг here на n + выравнивание если нужно)
ALIGN-TO - что это?
ALIGN-BYTES - и что это?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср фев 07, 2007 19:51 
Цитата:
ALIGN - Выравнивает указатель области данных если необходимо.

Несколько громоздко звучит.. Проще так: "после ALIGN HERE всегда выровнен".

ALIGN-NOP говорит:
Цитата:
( n — )
выровнять HERE на n и заполнить NOP

То есть, когда мы находимся в маш. коде, в исполняемом коде, то заполнять его нулями или вообще не заполнять нельзя. Нужно записать в "дырки" команды-пустышки. Это NOP'ы и есть.

ALIGN-BYTES -- это как раз значение байтов на которое надо выравнивать. По-умолчанию выравнивается на 16 байтов.

ALIGN-TO -- это внутренне слово ядра используемое как раз и ALIGN'ом и ALIGNED'ом (см. исходники в ядре). На входе два значения -- адрес который надо выровнять и значение на которое надо выровнять.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 07:52 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
ALIGN-NOP сдвигает HERE на n и дыра заполняется nop
60 ALIGN-NOP сдвинет на 60 байт?

ALIGN-BYTES что то возращает, причем отличается очень сильно от HERE

PS: исходники я смотрю, иногда поподаются просто слова которые я не разобрал еще, из-за этого тяжело разобраться со словом.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 11:05 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Код:
ALIGN-BYTES @
Ok ( 16 )

ALIGN-BYTES это VARIABLE переменная.

Код:
HERE
Ok ( 5702592 )
60 ALIGN-NOP
Ok ( 5702592 )
HERE
Ok ( 5702592 5702640 )
60 MOD .
0  Ok ( 5702592 )
100 DUMP

5703C0   90 90 90 90  90 90 90 90  90 90 90 90  90 90 90 90 РРРРРРРРРРРРРРРР
5703D0   90 90 90 90  90 90 90 90  90 90 90 90  90 90 90 90 РРРРРРРРРРРРРРРР
5703E0   90 90 90 90  90 90 90 90  90 90 90 90  90 90 90 90 РРРРРРРРРРРРРРРР
5703F0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 ................
570400   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 ................
570410   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 ................
570420   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 ................ Ok

ALIGN-NOP ( n -- ) выравнивает на адрес кратный n, что впрочем и прописано в исходниках.

ЗЫ /me например до сегодняшнего дня ALIGN не использовал вообще ни разу и делал вид что он не существует... Зачем он вам понадобился?

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 11:08 
Цитата:
60 ALIGN-NOP сдвинет на 60 байт?

Не, не сдвинет. А выровняет. А если для выравнивания нужно будет сделать дырку в HERE, туда запишет машинные команды NOP, чтобы процессор при исполнении этого кода не сходил с ума.

Pretorian писал(а):
ALIGN-BYTES что то возращает, причем отличается очень сильно от HERE

profiT писал(а):
ALIGN-BYTES -- это как раз значение байтов на которое надо выравнивать.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 11:34 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Вот теперь все понятно. Спасибо всем!

yGREK писал(а):
ЗЫ /me например до сегодняшнего дня ALIGN не использовал вообще ни разу и делал вид что он не существует... Зачем он вам понадобился?


Если разбираться то во всем. (не могу спать спокойно :)) )


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 13:40 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
yGREK писал(а):
ЗЫ /me например до сегодняшнего дня ALIGN не использовал вообще ни разу и делал вид что он не существует... Зачем он вам понадобился?

А в исходниках, которые д. работать под разными системы это может быть необходимо. Поэтому лучше вставлять, туда, где это критично. Для работы SPF это не нужно. Для современных компов это, ИМХО, тоже не нужно. Для старья/уникальных систем м. и надо... ;) Для портируемости надо скорее всего!

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 13:53 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Для современных процессоров это тоже надо. Прирост в скорости даёт. Но об этом заботится сам SPF.

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 16:02 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
profiT писал(а):
Разбирать все слова SPF переводя их из "непривычной" фортовской записи в более "удобную" и более "привычную" ассемблерную (!) -- это не лучший способ осваивать язык, думаю. Да и "начинающие" тоже интересные. Маш. код читают-понимают, Форт -- нет.


Да почему не привычной, вполне привычный, но удобна все равно асмовская т.к. ну все по кирпичикам разложено. Как говорится скелет непомешает знать, нелюблю черные ящики.

profiT писал(а):
Ещё один добрый совет: ИСПОЛЬЗУЙ [СОDE][/СОDE] !!



Всегда забываю про это.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB