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

Ваш аккаунт

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

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

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

Перегон кода

5.5K
13 мая 2005 года
Ded pendos
40 / / 13.05.2005
Если такая прога или тулз языка который позволит перегонять код языка C++ Delphi и тд в asm Tasm Masm,?
не сершайте тока в данном вопросе я чайник....
425
14 мая 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by Ded pendos
Если такая прога или тулз языка который позволит перегонять код языка C++ Delphi и тд в asm Tasm Masm,?

В любом компиляторе есть опция "выдать листинг объектного кода на ассемблере". Например, для всех компиляторов C/C++ от MS надо задать [COLOR=blue]/FA[/COLOR] в командной строке.

Кстати, разбор листингов компилятора — отличный способ изучения языка ассемблера. Например, однажды я поразился уму компилятора (точнее его авторов). Целое число умножалось на 24. Я искал в листинге команду умножения и не мог найти. Оказалось, это было сделано так: число сдвигалось на 2 бита влево и к нему прибавлялось исходное. И никакого умножения!

5.5K
15 мая 2005 года
Ded pendos
40 / / 13.05.2005
Вообщем спасиба, но я только не понял а командная строка в си, это где или надо через виндовую фигачить?
425
16 мая 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by Ded pendos
Вообщем спасиба, но я только не понял а командная строка в си, это где или надо через виндовую фигачить?

Если вы работаете с командной строки (видимо, это не ваш случай), то задаёте что-то вроде cl /FA hello.cpp.

Если в VC++ v6, то ищете Output Files где-то в параметрах проекта. Точнее, к сожалению, подсказать не могу, потому что у меня нет под рукой v6.

Если в VC++ v7 (.NET), тогда в Solution explorer'e кликаете правой кнопкой на файл (.c или .cpp), из выпадающего меню выбираете Properties и затем в диалоге ищете Configuration Properties — C/C++ — Output Files — Assembler Output.

Если работаете в других системах, спросите конкретно. Кто-нибудь обязательно знает.

991
18 мая 2005 года
Zenhipster
157 / / 14.01.2005
Цитата:
Originally posted by sq_deep
число сдвигалось на 2 бита влево и к нему прибавлялось исходное.



Если число сдвинуть на 2 бита влево и к нему прибавить исходное, то это будет эквивалентно умножению на 5,

Цитата:
Originally posted by sq_deep
Например, однажды я поразился уму компилятора (точнее его авторов). Целое число умножалось на 24.



а чтобы умножить на 24, надо просуммировать сдвиг исходного числа на 4 и сдвиг
исходного числа на 3.

t*5 == (t << 2) + t
t*24 == (t << 4) + (t << 3)

Видимо авторы компилятора действительно отличались большим умом =))

425
18 мая 2005 года
sq_deep
498 / / 18.02.2005
Прошу прощения. Авторы компилятора тут ни при чём. Ошибка моя. Решил заменить пример на более простой, текст переписал, а 24 на 5 не исправил. Как говорила девушка, утонувшая в болоте, «торопилась я». Впредь постараюсь быть внимательнее.
991
18 мая 2005 года
Zenhipster
157 / / 14.01.2005
С каждым может случиться =) Я тут наднях выдал, что красный + желтый будет зеленый, когда на самом деле - наоборот =))
8.3K
18 мая 2005 года
_edge [tkm]
48 / / 04.04.2005
отмечу, что вообще существуют дизассемблеры :]
425
19 мая 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by _edge [tkm]
отмечу, что вообще существуют дизассемблеры :]

Тут просили C --> ASM, а не наоборот...

991
19 мая 2005 года
Zenhipster
157 / / 14.01.2005
Цитата:
Originally posted by sq_deep
Тут просили C --> ASM, а не наоборот...



Ну так все правильно. Программа на C компилится в исполняемый модуль, после чего этот самый модуль передается дизассемблеру (IDA Pro например). В итоге получаем Ассемблерный эквивалент C - ишному коду (точнее один из множества вариантов выбранный компилятором).
С помощью программы EXE2C можно попробовать и обратное: ASM --> C, только она работает только с 16 - битными инструкциями, и полученный листинг вряд-ли удастся скомпилить без предварительных правок.

255
19 мая 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by sq_deep
Тут просили C --> ASM, а не наоборот...


Ага а дизасемблеры уже дизасями стали? :)
А я предлагал учить асму. Уже бы знал хотя-бы что такое дизасмблер. :) Это тебе не декомпилятор :) Все намного проще.

425
19 мая 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by Dart Bobr
Ага а дизасемблеры уже дизасями стали? :)
А я предлагал учить асму. Уже бы знал хотя-бы что такое дизасмблер. :) Это тебе не декомпилятор :) Все намного проще.

Юноша, Вы всё-таки нарвётесь...

Думаю, кроме Вас, уважаемый, здесь все поняли, что имелось в виду.

Ваша самоуверенность просто поразительна. Некоторые узнали про дизасм раньше, чем Вы появились на свет. Поверьте мне. Извините за назидательный тон, но не стo&#769;ит здесь устраивать соревнование кто дальше писнет. Такое уместно разве что в детском саду.

255
24 мая 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by sq_deep
Юноша, Вы всё-таки нарвётесь...

Думаю, кроме Вас, уважаемый, здесь все поняли, что имелось в виду.

Ваша самоуверенность просто поразительна. Некоторые узнали про дизасм раньше, чем Вы появились на свет. Поверьте мне. Извините за назидательный тон, но не стo&#769;ит здесь устраивать соревнование кто дальше писнет. Такое уместно разве что в детском саду.


Судя по вашему предыдущему посту, вы несовсем поняли что такое дизасемблер (не знали, были пьяны или у вас болела голова я не знаю). Моя самоуверенность? Хм.... Да я не уверен что я допишу этот пост.
Я и не сержусь за назидательный тон, просто в про должение одного топика, хочу заметить, что знаний в низкоуровневом програмировании вам скорее всего не хватает. Хотя я могу и ошибаться. Да и не собираюсь я соревноваться кто дальше писнет. Может только - кто круче напрограмит :).
И не надо мне угрожать. Я все равно никого не боюсь. Я немного не в том возрасте чтоб кого-то бояться. Хотя нет, - единственный человек, которого я реально могу бояться, одновременно уважая - Z0mbie. А остальные что мне сделают? Не будут отвечать на мои вопросы? Да здесь никто толком на них и не отвечал никогда. Свои вопросы я задаю на совершенно другом форуме, ибо даже довольно простые вопросы здесь местные "госу" либо не знают, либо месяцами молчат. Вот бы где им свою крутость свою проявить. Так нет же, они будут доказывать тебе что то лучше того, или наоборот, но не ответят по существу. Как верно подметил вышеупомянутый Z0mbie, что на форумах сидят ленивые форумчане, которым лень на вопрос ответить. Так-что единственное что вы можете сделать мне в отместку - заспамить мое мыло (которое я скоро собираюсь менять), и матюкать меня трехэтажным матом. Как вы уже догадались - я от страха под стол залез. И не надо наездов на асму, вирусописателей, бобров, и т.д. Вот это действительно выглядит как ребячество.

11K
30 мая 2005 года
StormProgSerG
12 / / 25.05.2005
Цитата:
Originally posted by Dart Bobr
Судя по вашему предыдущему посту, вы несовсем поняли что такое дизасемблер (не знали, были пьяны или у вас болела голова я не знаю). Моя самоуверенность? Хм.... Да я не уверен что я допишу этот пост.
Я и не сержусь за назидательный тон, просто в про должение одного топика, хочу заметить, что знаний в низкоуровневом програмировании вам скорее всего не хватает. Хотя я могу и ошибаться. Да и не собираюсь я соревноваться кто дальше писнет. Может только - кто круче напрограмит :).
И не надо мне угрожать. Я все равно никого не боюсь. Я немного не в том возрасте чтоб кого-то бояться. Хотя нет, - единственный человек, которого я реально могу бояться, одновременно уважая - Z0mbie. А остальные что мне сделают? Не будут отвечать на мои вопросы? Да здесь никто толком на них и не отвечал никогда. Свои вопросы я задаю на совершенно другом форуме, ибо даже довольно простые вопросы здесь местные "госу" либо не знают, либо месяцами молчат. Вот бы где им свою крутость свою проявить. Так нет же, они будут доказывать тебе что то лучше того, или наоборот, но не ответят по существу. Как верно подметил вышеупомянутый Z0mbie, что на форумах сидят ленивые форумчане, которым лень на вопрос ответить. Так-что единственное что вы можете сделать мне в отместку - заспамить мое мыло (которое я скоро собираюсь менять), и матюкать меня трехэтажным матом. Как вы уже догадались - я от страха под стол залез. И не надо наездов на асму, вирусописателей, бобров, и т.д. Вот это действительно выглядит как ребячество.



Здрасти!
Я тут прочитал ваши (…), ничё, весело!
Особенно мне понравилось про:
а чтобы умножить на 24, надо просуммировать сдвиг исходного числа на 4 и сдвиг
исходного числа на 3.

t*5 == (t << 2) + t
t*24 == (t << 4) + (t << 3)

Класс! Нечего сказать…
Хотя…
Мне помниться, ещё в 80х, мне мой "дядя" говорил –"Хочешь умножить, аль поделить, двигай!".
Это ужь я потом понял, как "корень", "процент"… в ASSEMBLERе реализовать…
А интересно, где такие "Крутые" форумы есть, на которых "чисто по теме базар", жажду сам поговорить, а то скучно… с кем не пытаюсь поговорить, либо не понимают, либо "ваще не в тему базарят"!
А вообще, у вас тут весело (такого начитаться можно!)…
Всем спас., а ссылки на форумы я буду ожидать (жаждю на светлые "головы" посмотреть, ну и конечно пообщаться).

8.3K
30 мая 2005 года
_edge [tkm]
48 / / 04.04.2005
2dart_bobr:

http://dizzie.narod.ru/lde_beta.htm
4.4K
30 мая 2005 года
captain cobalt
43 / / 04.03.2004
Цитата:
Originally posted by StormProgSerG Мне помниться, ещё в 80х, мне мой "дядя" говорил –"Хочешь умножить, аль поделить, двигай!".
Это ужь я потом понял, как "корень", "процент"… в ASSEMBLERе реализовать…
А интересно, где такие "Крутые" форумы есть, на которых "чисто по теме базар", жажду сам поговорить, а то скучно… с кем не пытаюсь поговорить, либо не понимают, либо "ваще не в тему базарят"!

http://www.wasm.ru/forum/

_

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