Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2012, 13:35   #11
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,837
По умолчанию

Могу ошибаться (ассемблер уже совсем плохо помню), но так они какие-то флаги сбрасывают.
Arigato вне форума Ответить с цитированием
Старый 17.06.2012, 14:03   #12
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

inc + dec - похоже это с $O- скомпилировано.
Я так понимаю, inc - это увеличение на 1, которое в коде, dec - это вычитание нижней границы для проверки диапазона с одним jmp по принципу
Код:
sub eax, lowerBound
cmp eax, upperBound - lowerBound
jnc @overflow
Потом inc увеличивает обратно.
Somebody вне форума Ответить с цитированием
Старый 17.06.2012, 14:54   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

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

а там увеличение и сразу уменьшение.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.06.2012, 15:38   #14
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Уткин, не придирайтесь, там всетаки есть разница, а меньше байта мы не адресуем.
Но можем адресовать больше.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 17.06.2012, 15:39   #15
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,837
По умолчанию

Первый INC как раз увеличение, а дальше идет контроль выхода за пределы типа. Причем там сразу и нижняя, и верхняя границы проверяются.
Кстати, если немного переписать пример:
Код:
{$R+}
type f = 1..4;
var varF: f = 4;
begin
  Inc (varF);
  WriteLn ('varF = ', varF);
  ReadLn;
end.
То уже другой код получается:


Последний раз редактировалось Arigato; 17.06.2012 в 15:45.
Arigato вне форума Ответить с цитированием
Старый 17.06.2012, 19:44   #16
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Зачем нам ассемблерный код?
Для нас главное, что тип от 1 до 4 и тип байт ведут себя по-разному.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ОЧЕНЬ нужно создать собственный тип данных в Delphi Dima_Dima Общие вопросы Delphi 4 16.01.2011 00:45
две задачи на тип INTEGER и тип CHAR inspiron13 Помощь студентам 5 04.01.2011 00:17
две задачи на тип INTEGER и тип CHAR inspiron13 Паскаль, Turbo Pascal, PascalABC.NET 3 04.01.2011 00:08
Собственный тип в С L_M Общие вопросы C/C++ 7 02.05.2009 22:53
Перевести тип String в тип PChar (Delphi 7) ScorpioN_T Помощь студентам 2 28.10.2008 22:13