Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.05;
Скачать: CL | DM;

Вниз

не работают вставки с ассемблерным кодом   Найти похожие ветки 

 
Serguar ©   (2003-12-19 10:55) [0]

Здравствуйте. Подскажите пожалуйсто, что нужно сделать что бы работали куски кода написанные на ассемблере. Столкнулся с такой проблемой впервые. Обычно программа вылетает при генерации одного из прерываний, или просто при адресации регистров.
Например, след. код:

function printerready:boolean;
var check:byte;
begin
Delay(10);
asm
push cx
push es
push dx
push ax
mov ax,40h
mov es,ax
mov dx,es:[8] // вылетает здесь
inc dx
in al,dx
and al,80h
mov cx,7
@loop1: shr al,1
loop @loop1
mov check,al
pop ax
pop dx
pop es
pop cx
end;
printerready:=(check=1)
end;

или

function GetPrnStatus:byte;assembler;
asm
mov dx,LptNo
mov ah,02
int 17h // вылетает здесь
xchg ah,al
end;

Заранее благодарен.


 
Digitman ©   (2003-12-19 10:58) [1]

потому что это тебе не ДОС


 
Serguar ©   (2003-12-19 11:09) [2]

И все? Я так понял, что работа с прерываниями, как во втором примере, вообще не прокатит. Хотя, эти примеры были взяты из мест, где написано, что код работает в Delphi. А как на счет первой процедуры?


 
Digitman ©   (2003-12-19 11:14) [3]


> Я так понял, что работа с прерываниями, как во втором примере,
> вообще не прокатит


разумеется, не прокатит.


> эти примеры были взяты из мест, где написано, что код работает
> в Delphi


код этот, будучи успешно скомпилированным (почему бы и нет ?) и запущенным на исполнение, не в Делфи работает, а в контексте Win32-процесса


> как на счет первой процедуры


и первая работать не будет.
говорю же тебе - это не ДОС)


 
Digitman ©   (2003-12-19 11:15) [4]

если же тебе требуется организовать работу с принтером в своем приложении, то заводи отд.ветку, где и задавай вопрос, мол, какие пронраммные средства предусмотрены в Делфи для работы с принтером



Страницы: 1 вся ветка

Текущий архив: 2004.01.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.031 c
1-11913
DDA
2003-12-21 16:40
2004.01.05
ShellExecute ?


1-11918
$Hic0
2003-12-20 21:43
2004.01.05
Переход с Delphi 6.0 в Delphi 7.0


3-11839
Maksym
2003-12-05 17:00
2004.01.05
DBLookupListbox


1-11889
serge
2003-12-17 18:07
2004.01.05
Display TEdit comp. in TMenuItem ?


14-12056
lak
2003-12-13 16:40
2004.01.05
оператор сотовой связи