вЫЗОВ бИБЛИОТЕКИ нА яЗЫКЕ вЫСОКОГО уРОВНЯ иЗ аССЕМБЛЕРНОЙ пРОГИ
Друзья! помогите советом. надо вызвать функцию на С из ассемблерной программы. с ассемблерными вставками проблем нет, да и примеров полно. а вот наоборот... программа - резидент (под DOS). заранее спасибо, только просьба всякие "умные вещи" ради рейтинга не писать :) ну разве что анекдот хороший... если есть готовые примеры - кидайте на [EMAIL]sql82@list.ru[/EMAIL]
Цитата:
Originally posted by squirL
Друзья! помогите советом. надо вызвать функцию на С из ассемблерной программы. с ассемблерными вставками проблем нет, да и примеров полно. а вот наоборот... программа - резидент (под DOS). заранее спасибо, только просьба всякие "умные вещи" ради рейтинга не писать :) ну разве что анекдот хороший... если есть готовые примеры - кидайте на [EMAIL]sql82@list.ru[/EMAIL]
Друзья! помогите советом. надо вызвать функцию на С из ассемблерной программы. с ассемблерными вставками проблем нет, да и примеров полно. а вот наоборот... программа - резидент (под DOS). заранее спасибо, только просьба всякие "умные вещи" ради рейтинга не писать :) ну разве что анекдот хороший... если есть готовые примеры - кидайте на [EMAIL]sql82@list.ru[/EMAIL]
Здесь нужно использовать соглашения C по вызову функций: Параметры функции передаются через стек, статус ф-ции возвращается в AX.
Например:
Функция C выглядит так:
int myfunc(int value)
тогда ее вызов будет:
push word value
call myfunc
add sp,2
Цитата:
Originally posted by Ramon
Здесь нужно использовать соглашения C по вызову функций: Параметры функции передаются через стек, статус ф-ции возвращается в AX.
Например:
Функция C выглядит так:
int myfunc(int value)
тогда ее вызов будет:
push word value
call myfunc
add sp,2
Здесь нужно использовать соглашения C по вызову функций: Параметры функции передаются через стек, статус ф-ции возвращается в AX.
Например:
Функция C выглядит так:
int myfunc(int value)
тогда ее вызов будет:
push word value
call myfunc
add sp,2
благодарю! однако, нельзя ли по подробнее? в частности: где и как обьявляется процедура на С, какие нибудь модификаторы, и т. п.
я же не могу написать:
model small
void myproc(void){}
.code
begin^
call myproc
mov ax,04c00h
int 21h
end begin
code ends
:D :D :D
Цитата:
Originally posted by squirL
благодарю! однако, нельзя ли по подробнее? в частности: где и как обьявляется процедура на С, какие нибудь модификаторы, и т. п.
я же не могу написать:
model small
void myproc(void){}
.code
begin^
call myproc
mov ax,04c00h
int 21h
end begin
code ends
:D :D :D
благодарю! однако, нельзя ли по подробнее? в частности: где и как обьявляется процедура на С, какие нибудь модификаторы, и т. п.
я же не могу написать:
model small
void myproc(void){}
.code
begin^
call myproc
mov ax,04c00h
int 21h
end begin
code ends
:D :D :D
можно например:
EXTRN _myproc:proc
...
call _myproc
...