[an error occurred while processing this directive]
Народ, кто поделится примером обработки исключения "деление на ноль" на Turbo Pascal ?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
vinogradov aleksei
12 ноября 2005 г. 17:45
Составить ответ
|||
Конференция
|||
Архив
Ответы
Можно, смотри в его хелпе описание ExitProc.
—
EWAVR
(13.11.2005 13:33
82.207.31.161
, 61 байт)
В ДОСЕ это было связано не с исключительными ситуациями. Нужно найти место, где (+)
—
[cm]
(12.11.2005 22:35
83.170.248.23
, 233 байт)
В Borland Pascal нет обработки исключительных ситуаций! Она есть только в библиотеке Turbo Vision (Borland Pascal и в Borland C), но в книге по 6 версии TV это не описано. Я делал так...
—
Mk-51
(12.11.2005 18:24
85.140.21.214
, 96 байт)
А как его определить ? (+)
—
vinogradov aleksei
(12.11.2005 18:34
213.179.227.51
, 159 байт)
Там где в принципе можем поделить на ноль, проверяемся и запрещаем делить на ноль, взводим логич. переменную в случае если делитель нулевой и обрабатываем это в Idle.
—
Mk-51
(12.11.2005 18:39
85.140.21.214
,
пустое
)
В Turbo Vision я не рулю, да этого и не требуется (+)
—
vinogradov aleksei
(12.11.2005 19:01
213.179.227.51
, 301 байт)
Маленькая добавочка: в Turbo Vision получаются очень красивые досовские программы, я когда освоил TV, то писал в дальнейшем только через TV. Да и в Delphi из TV много перетекло, структура программ похожая получается.
—
Mk-51
(12.11.2005 20:19
85.140.21.214
,
пустое
)
Ну, это просто! Асм в борланде отдается процессору, а компилятор генерацию кода связывает с *.tpp (tpu) модулями...
—
Mk-51
(12.11.2005 19:55
85.140.21.214
, 159 байт)
Нет, так не пойдет. А если при умножении возникает переполнение, тогда как ? (+)
—
vinogradov aleksei
(12.11.2005 20:52
213.179.227.51
, 341 байт)
Я не понял вопроса...
—
Mk-51
(12.11.2005 23:12
85.140.21.214
, 671 байт)
Но ОТКУДА компилятор знает, что произошло исключение ? Думаю, он ставит свои обработчики на INT0 и INT4. Или я не прав ?
—
vinogradov aleksei
(12.11.2005 23:31
213.179.227.51
,
пустое
)
Компилятор просто критические участки кода генерит через свои процедуры - вот и все. Получаемый exe-шник ничего нигде не перехватывает. Исключения просто не доходят до процессора, а в тонкостях кода я не разбирался. Если интересно, то рекомендую запустить Turbo Debbuger и посмотреть как system обрабатывает деление на ноль.
—
Mk-51
(12.11.2005 23:48
85.140.21.214
,
пустое
)
Ясно ...
—
vinogradov aleksei
(13.11.2005 10:15
213.179.227.52
,
пустое
)
Ответ:
—
507
(12.11.2005 18:07
213.177.99.49
, 187 байт)
Не на делфи, а именно на паскале !
—
vinogradov aleksei
(12.11.2005 18:12
213.179.227.51
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru