|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.11.2016, 17:54 | #1 |
Новичок
Джуниор
Регистрация: 20.11.2016
Сообщений: 3
|
Прием четырех параметров от приложения на C.
В коде С я вызываю код ассемблера
int __attribute__((cdecl)) func(int _a, int _b, int _c, int _d); int main() { int x=func(3,4,2,1); printf("x = [%d]\n", res); return 0; } Но в коде ассемблера получается принять только 2 параметра. Добавление строки mov eax, [ebp+16] не работает global func section .text func: push ebp mov ebp, esp mov eax, [ebp+8] push eax mov eax, [ebp+12] push eax pop ebp ret |
20.11.2016, 18:46 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
20.11.2016, 18:59 | #3 |
Новичок
Джуниор
Регистрация: 20.11.2016
Сообщений: 3
|
Частично разобрался. Вот что получилось:
global func extern su section .text func: push ebp mov ebp, esp mov eax, [ebp+8] push eax mov eax, [ebp+12] push eax mov eax, [ebp+16] push eax mov eax, [ebp+20] push eax call su pop ebp ret и код C: #include <stdio.h> int __attribute__((cdecl)) func(int _a, int _b, int _c, int _d); extern __attribute__((stdcall)) int su(int _a, int _b, int _c, int _d); int main() { int x=func(3,4,2,6); printf("x = [%d]\n", res); return 0; } extern __attribute__((stdcall)) int su(int _a, int _b, int _c, int _d) { return _a+_b+_c+_d; } Теперь вопрос как вызвать ту же самую su если сделать ее _fastcall Последний раз редактировалось testr; 20.11.2016 в 20:02. |
20.11.2016, 22:55 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
21.11.2016, 08:32 | #5 |
Новичок
Джуниор
Регистрация: 20.11.2016
Сообщений: 3
|
Спасибо. Буду пробовать
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
четырех мерный масссив | Victor1963 | Общие вопросы Delphi | 5 | 12.03.2014 18:25 |
Передача параметров в приложения | Alkcatras | C++ Builder | 2 | 09.08.2013 08:21 |
Организация программ с использованием процедур .использованием параметров-значений и параметров переменных | Фрейтор 40-500 | Помощь студентам | 0 | 02.11.2012 21:58 |
Робот в четырех направлениях | omelon | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 29.05.2012 06:50 |
Запуск приложения и передача ему параметров из указанного файла | Glegus | Помощь студентам | 1 | 11.01.2010 20:24 |