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

Как получить размер функции? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обращение к сервисам IIS по net tcp http://www.cyberforum.ru/cpp/thread539919.html
добрый день. Прошу помощи в решении такой задачи.(руководство ставит задачу, не важно умеешь не умеешь - учись.) Суть вопроса. Есть программа крутящаяся на нескольких серваках. Обращение...
C++ Изменение mac адреса Стоит задача программно изменить mac адрес устройства. Помогите чем небуть url или примерчиком может кто то Даст вектор куда копать )) http://www.cyberforum.ru/cpp/thread539513.html
Обнаружение автомобилей на изображении C++
Здравствуйте! Уже второй день копаюсь в инете пытаясь найти хоть какой нить алгоритм по распознаванию автомобилей на фотографии. Ничего внятного до сих пор не нашел. Задача такова: используя...
Корректность Makefile C++
Написал на Си программу, которая реализует следующую структуру данных - Сбалансированное Дерево - программа компилируется с использованием статической библиотеки libTree.a которая собирается из трёх...
C++ Компилятор чудит http://www.cyberforum.ru/cpp/thread533771.html
Что такое? Не могу понять почему компилятор ругается. Все эти модули есть в папке компилятора. http://s019.***********/i636/1203/c6/de15ed22d936.png
C++ Бинд клавиш. Как быть и на чём варить? Всем доброго времени суток. Сам не мастак в программинге, а прога нужна позарез. Суть вот в чём, нужно сделать так, чтобы в окне программы можно было делать бинд клавишам, например, если зажимаешь... подробнее

Показать сообщение отдельно
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
07.04.2012, 14:41
а кто знает дериктивы которые бы размещали функции в том порядке в котором они встречаются в коде, и точно в том же порядке размещали данные в сегменте данных.
помоему таких директив не существует.
компилятор вправе делать ассемблерный код по своему усмотрению.
Вот ассемблерный код он не переиначит...

объясните странность
Все старнности решаются через дизассемблирование функций. В борланде это помоему сделать проще некуда.

пример(mingw, синтаксис intel):


код 1
C
1
2
3
4
5
void MyMessage()
{
MessageBox(0,"OK","OK",MB_OK );
return;
}

дизазм 1 (размер 47)

Код
MyMessage()
MyMessage+0: push   ebp
MyMessage+1: mov    ebp,esp
MyMessage+3: sub    esp,0x18
!MessageBox(0,"OK","OK",MB_OK );
MyMessage+6: mov    DWORD PTR [esp+0xc],0x0
MyMessage+14: mov    DWORD PTR [esp+0x8],0x403064
MyMessage+22: mov    DWORD PTR [esp+0x4],0x403064
MyMessage+30: mov    DWORD PTR [esp],0x0
MyMessage+37: call   0x401b88 <MessageBoxA@16>
MyMessage+42: sub    esp,0x10
!return;
!}
MyMessage+45: leave  
MyMessage+46: ret


код 2
C
1
2
3
4
5
void MyMessage()
{
//MessageBox(0,"OK","OK",MB_OK );
return;
}

дизазм 2 (размер 5)
Код
MyMessage()
MyMessage+0: push   ebp
MyMessage+1: mov    ebp,esp
!//MessageBox(0,"OK","OK",MB_OK );
!return;
!}
MyMessage+3: pop    ebp
MyMessage+4: ret
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru