Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
ВнизОшибка ассемблера в XP Найти похожие ветки
← →
DimaK (2004-01-08 19:49) [0]Привер всем!
Такая проблема, на 98 все работало, перешол на XP и возникли проблемы при использовании ассемблерных вставок. Вот мой код:
procedure TForm1.Timer1Timer(Sender: TObject);
var v: Byte; // Для состояния CTS (5 ножка)
begin
// Проверка CTS (5 ножка)
if Label1.Caption="1" then // Если используется COM1
begin
asm
mov AH,3; // Номер функции прерывания 14 BIOS
mov DX,0; // Выбираем порт (0-COM1, 1-COM2)
int 14H; // Получаем байт статуса
mov v,AL; // Записываем значение AL в переменную v
end;
end
else
if Label1.Caption="2" then // Если используется COM2
begin
asm
mov AH,3; // Номер функции прерывания 14 BIOS
mov DX,1; // Выбираем порт (0-COM1, 1-COM2)
int 14H; // Получаем байт статуса
mov v,AL; // Записываем значение AL в переменную v
end;
end;
//
if (v AND 16)=16 then Label2.Caption:="1"
else
if (v AND 0)=0 then Label2.Caption:="0";
end;
Смысл был такой, каждую секунду проверяется COM порт, а именно состояние его 5 ножки. На XP сразу же падает, ругается на строку (int 14H). В чем дело и как это исправить?
Заранее спасибо/
← →
KSergey (2004-01-09 08:39) [1]На NT платформе нельзя напрямую из пользовательских программ обращаться к аппаратуре.
Изучайте написание драйверов или используйте имеющиеся готовые наработки по этой теме.
Искать на торри.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.01 c