Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

вЫЗОВ бИБЛИОТЕКИ нА яЗЫКЕ вЫСОКОГО уРОВНЯ иЗ аССЕМБЛЕРНОЙ пРОГИ

2
05 декабря 2003 года
squirL
5.6K / / 13.08.2003
Друзья! помогите советом. надо вызвать функцию на С из ассемблерной программы. с ассемблерными вставками проблем нет, да и примеров полно. а вот наоборот... программа - резидент (под DOS). заранее спасибо, только просьба всякие "умные вещи" ради рейтинга не писать :) ну разве что анекдот хороший... если есть готовые примеры - кидайте на [EMAIL]sql82@list.ru[/EMAIL]
260
05 декабря 2003 года
Ramon
1.1K / / 16.08.2003
Цитата:
Originally posted by squirL
Друзья! помогите советом. надо вызвать функцию на С из ассемблерной программы. с ассемблерными вставками проблем нет, да и примеров полно. а вот наоборот... программа - резидент (под DOS). заранее спасибо, только просьба всякие "умные вещи" ради рейтинга не писать :) ну разве что анекдот хороший... если есть готовые примеры - кидайте на [EMAIL]sql82@list.ru[/EMAIL]



Здесь нужно использовать соглашения C по вызову функций: Параметры функции передаются через стек, статус ф-ции возвращается в AX.
Например:
Функция C выглядит так:
int myfunc(int value)

тогда ее вызов будет:
push word value
call myfunc
add sp,2

2
05 декабря 2003 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Ramon


Здесь нужно использовать соглашения 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

2.1K
05 декабря 2003 года
UjinNash
64 / / 29.11.2003
Цитата:
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


можно например:
EXTRN _myproc:proc
...
call _myproc
...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог