![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Использование 16-битного ассемблера в Delphi 7 на Windows 98: Преодоление проблем с прерываниямиDelphi , ОС и Железо , WindowsСегодня мы поговорим о проблеме, с которой сталкиваются разработчики, использующие Delphi 7 для работы с 16-битным ассемблером в операционной системе Windows 98. В частности, речь пойдет о сложностях, возникающих при использовании прерываний в ассемблерном коде. Мы рассмотрим пример, связанный с форматированием дискет, и найдем решение этой проблемы. Описание проблемыРазработчик столкнулся с проблемой при попытке использовать 16-битный ассемблерный код внутри программы на Delphi 7, предназначенной для работы под Windows 98. При использовании прерываний возникали сбои в работе программы, в том числе "синий экран смерти" или зависание. Это заставило разработчика предположить, что использование 16-битного ассемблера в Delphi под данную операционную систему невозможно. В качестве примера кода был приведен фрагмент, предназначенный для форматирования дискеты через флоппи-драйв.
Подтвержденный ответВ комментариях к вопросу было указано, что напрямую вызывать BIOS и обходить драйверы невозможно. Также было предложено использовать Delphi 1, который генерирует 16-битные приложения, и который шел в комплекте с Delphi 2 как переходный этап от 16-битных к 32-битным приложениям. Однако, согласно комментариям, использовать Delphi 7 для таких целей не удастся. Альтернативный ответКак альтернативный вариант, было предложено попробовать скомпилировать приложение как "16-битное консольное" приложение, поскольку Delphi 7 по умолчанию генерирует 32-битные приложения, и прерывания, используемые в примере, не доступны для 32-битных приложений. Также было отмечено, что в ассемблерном коде следует использовать шестнадцатеричные числа. Решение проблемыЧтобы решить проблему с использованием 16-битного ассемблера в Delphi 7 на Windows 98, разработчикам следует рассмотреть следующие шаги:
ЗаключениеВ данной статье мы рассмотрели проблему использования 16-битного ассемблера в Delphi 7 на Windows 98 и возможные пути её решения. Важно помнить, что Delphi 7 предназначен для создания 32-битных приложений, и для работы с 16-битным кодом может потребоваться использование других инструментов или версий Delphi. Проблема заключается в использовании 16-битного ассемблерного кода в Delphi 7 для работы с прерываниями в операционной системе Windows 98, что может приводить к сбоям в работе программы. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |