The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Почему администрирование серверов ключевых открытых проектов..."
Отправлено Aleksey Salow, 10-Янв-10 05:54 
вообще-то были и short jmp (2 байта, переход на -128/+127 байт), и был long jmp (4 байта). short jmp был предпочтителен поскольку 8086 выбирал два байта из очереди за такт (8088 один байт). Что касается размерности jmp, то ещё дремучий tasm сам мог посмотреть кто куда переходит и выбрать соотв. размер. Правда если переход был вперёд, то он выделял 4 байта и если нужен short jmp, то остальное забивал nop-ами (ограничение однопроходного компилятора).

goto вообще незаменим в языках в которых отсутсвует поддержка конструкций аля try/finally (например в C), для обработки ошибок и организации единой точки выхода и гарантированного освобождения ресурсов.

> Отсюда и растут ноги о том что goto сильно запутывает код.

Вы вообще goto пользовали в жизни? Проблема с goto в том что в неумелых руках он действительно приводит к запутыванию кода, но не из-за какого-то мифического jump-а, а потому что он не поддаётся заключению в какие-то рамки, что усложняет восприятие. Все циклические конструкции (for, while, until) имеют определённые ограничения, одну точку входа и одну точку выхода, что позволяет делать код линейным. Goto же нарушает эту линейность в большинстве случаев, за что его и не любят.

> Сейчас уже коротких переходов jmp в природе нет

Та ну, всё есть. Зачем выбрасывать такой короткий jmp который зачастую будет происходить в рамках соседних адресов и с большей долей вероятности попадёт в кеш.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

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



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру