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


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Swing
To : Проблемайзер
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 14:13 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) G




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.