Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Fusix
0 / 0 / 0
Регистрация: 08.10.2010
Сообщений: 133
#1

C++ И ASM - C++

19.02.2012, 13:07. Просмотров 655. Ответов 1
Метки нет (Все метки)

Всем привет. Мне нужно создать функцию на С++, но особенную.
Мне нужно, чтобы она была пустая, при void Func(){}, компилятор уже добавляет туда
Assembler
1
2
3
4
5
6
PUSH EBP
MOV EBP,ESP
PUSH ECX
PUSH EBX
PUSH ESI
PUSH EDI
И все такое. Мне нужна пустая функция. Как это сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 13:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C++ И ASM (C++):

asm в VS - C++
вот такой код не работает. строит нормально, но во время запуска выводит "необр. искл" пытаюсь запустить слип() #include <Windows.h> ...

C++ и ASM - C++
Всем привет. Необходимо посчитать уравнение на языке ASM и вывести ответ на языке С++. Вот готовая программа на ASM с выводом на...

c++ asm - C++
_asm {} какие библиотеки нужно подключать , чтобы заставить работать ассемблер на с++ и как правильно записывать всё это дело ...

Asm + C++ - C++
Помогите на C++ считает нормально , а на asm #include<iostream> #include<stdio.h> #include <iomanip> using namespace std; bool...

c++ и ASM - C++
помогите найти ошибку #pragma once #include <stdlib.h> #include <iostream> class bbyte { private: void...

Прерывания asm - C++
Не могу использовать прерывания(int) в встроенном ассемблере. Вылезает ошибка доступа. Помогите пожалуйста помогите.

1
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
23.02.2012, 20:34 #2
* Пропатчить gcc, чтобы он поддерживал naked функции, и для функции Func использовать атрибут naked.
только функция как минимум будет содержать инструкцию ret (naked заставляет убирать пролог и эпилог)
и компилятор скорее всего будет сохранять базовые регистры.(гугл в помощь)

* Попробовать использовать оптимизацию -O3 -оно также может убрать пролог\эпилог в некоторых случаях, но это плохой способ.

* Написать функцию полностью на ассемблере. например так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
extern "C" int Func();//возвращает число 13
 
asm("Func: \n"
"movl $13,%eax\n"
"ret\n"
 
);
 
int main()
{
    std::cout<<Func()<<"\n";
    return 0;
}
http://liveworkspace.org/code/9ca1eb340e6db31454674e0ac359c59f
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2012, 20:34
Привет! Вот еще темы с ответами:

C++ + ASM FASM - C++
Всем привет. Можно ли в с++ коде вызывать функции написанные на FASM синтаксисе? Visual Studio 2012

Интерпретатор(asm) - C++
Хотел бы услышать советы по написанию интерпретатора языка ассемблер.

Вставка asm в С++ - C++
Здравствуйте! Помогите пожалуйста! Задание: Вычислить арифметическое выражение. Требуется написать функцию на языке C++ с вставкой на...

Asm в Builder - C++
Делаю ассемблеровскую вставку в Builder 6; в консоле. Проблема в 14 строке int main(int argc, _TCHAR* argv) { short S, R, Q; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru