RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ассемблерные вставки в VAC4


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Yu
To : Swing
Subj : Ассемблерные вставки в VAC4

> > > В ваткоме я это делаю так:
> > > int gg;
> > >
> > > _asm {
> > > mov gg, ebx
> > > };
> > >
> > > в gcc так:
> > >
> > > __asm__ (
> > > "mov $gg, %ebx"
> > > );
> > >
> > > а какой синтаксис у VAC4?
> > >
> > А никакой. Нет такой конструкции. Пишите ассемблерные прцедуры отдельно, ассемблируйте их ALP-ом и линкуйте с VAC4 объектами.
> >
>
> хм...
> Интересно, как я это сделал в VAC4, исходники не мои.
> Правда, долго парился с какой-то ошибкой, VAC не хотел воспринимать тип данных. Давно было, не помню.
>
> prog.icc
> ------------------------------------------->
> option link(pmtype, vio), file(genasm, "yes"), file(asmfilename, "prog"),
> file(genobject, "Yes")
> {
> target "prog.exe"
> {
> source "pcilib.c", "prog.cpp"
> }
> }
> <--------------------------------------------
>
> pcilib.c
> -------------------------------------------->
> --------- skip --------
> ULONG SetIOPL(ULONG CallGate, ULONG Value) {
> void *pfn=NULL;
> _asm{
> push ebx
> mov ebx,CallGate
> mov word ptr 4[pfn],bx
> xor ebx,ebx
> mov ecx,Value
> call fword ptr[pfn]
> pop ebx
> }
> return 0;
> }
> <---------------------------------------------

Спасибо, попробуем. Хотя я вроде так тоже пробовал...


Tue 06 Sep 2005 18:41 Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.