![]() |
|
![]() ![]() ![]() |
|
Kenyra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 2.9.2006 Репутация: нет Всего: нет |
Сама задача: Передать в ассемблер 2 числа long из С, вычесть и первого второе и вернуть результат в С.
на С я модуль написала. это что-то наподобии #include <stdio.h> long __fastcall sub(long,long); int main(){ long a=1004216541,b=641348432,c; c=sub(a,b); printf("%ld - %ld = %ld\n",a,b,c); return 0; } А вот с АСМ у меня возникли проблемы. Мне сказали, что должно быть так: .686 .model flat option casemap:none .code @sub@8 proc MOV EAX, ECX SUB EAX, EDX ret @sub@8 endp end я понимаю, что это, быть может, совсем просто. Но не могли бы вы помочь и разложить по полочкам, построчно, что за что отвечает. ![]() |
|||
|
||||
geek2600 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 19.11.2006 Репутация: нет Всего: 1 |
немного не понял вопроса.Тебе надо на С написать функцию на ассемблере или отдельно сделать прогу на асме которая будет экспортировать функцию?
|
|||
|
||||
Mikl__ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
если в С/С++ long это 64-разрядное число тогда на ассемблере, это выглядит так
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |