|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.06.2009, 21:46 | #1 |
Регистрация: 11.05.2009
Сообщений: 8
|
Из паскаля в ассемблер
Доброго времени суток.
Не могли бы вы мне помочь с кодом на ассемблере? т.к. с ним пока не очень дружу. Есть код на паскале, как он будет выглядеть на ассемблере? Код:
|
22.06.2009, 03:20 | #2 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 320
|
Наверно это не лучший ответ, но он подойдёт для любой программы, а не только для этой. Вобщем окомпилировать, потом открыть под IDA (дизассемблер) и найти ваши (а не те что повставлял компилятор) процедуры.
|
22.06.2009, 09:19 | #3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Примечания. 1) для TurboPascal ситуация с прозрачностью/наглядностью кода будет намного лучше, чем под Windows... 2) какие-то отдельные моменты реализации можно и подсмотреть в полученом exe-шнике... |
|
22.06.2009, 16:26 | #4 | |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 320
|
Цитата:
IDA достаточно умна, поэтому найти нужную процедуру в ней - нетрудно, в dll даже экспортные имена прописывает, а вот арифметические операции, условия и циклы в этих процедурах записаны вполне аутентично и можно по ним даже ассамблер учить. Ещё она (IDA) по любом пишет имена всех API и импортных функций, поэтому цепочку-логику работы проследить тоже нетрудно. По дизасму я читал Криса Касперского - "Искусство Дизвсамблера" и "Фундаментальные основы Хакерства". Довольно интересно. |
|
22.06.2009, 17:01 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Серж имеет ввиду то что скажем WriteLn('Count Word: ',CountWord); будет в асме не Врительном а обращение к прерыванию,+ подготовка к этому данных. Так что для автора это будет скорее всего непросто понять.
I'm learning to live...
|
|
22.06.2009, 17:19 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Спасибо, Виталий.
Да, именно так. вот, чтобы не быть голословным. всего одна (25-я) строчка из вышеупомянутого кода: Код:
например, мне понравился вот этот участок кода: Код:
ДОБАВЛЕНО. а вот как будет выглядеть кусочек кода, о котором говорил Виталий: Код:
Последний раз редактировалось Serge_Bliznykov; 22.06.2009 в 17:24. |
22.06.2009, 20:55 | #7 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 320
|
Ну вот видете, всё кроме WriteLn оптимально. Учтем ещё, что в реальном приложении скорее всего будет вместо него какая-нибудь 'MessageBoxA'.
(. Переводом кода в ассамблер компилятор заниматся должен) |
28.06.2009, 20:21 | #8 |
Регистрация: 11.05.2009
Сообщений: 8
|
Спасиб за отрывки кода.
BaronTreep компилятор не может перевести этот код на асму. |
28.06.2009, 22:19 | #9 |
Регистрация: 11.05.2009
Сообщений: 8
|
BaronTreep
а не могли бы вы весь код выложить, как он будет выглядеть на асме? |
30.06.2009, 09:30 | #10 |
Форумчанин
Регистрация: 02.01.2009
Сообщений: 340
|
ого... а процессор что, читает паскалевские исходники?
весь смысл компилирования - перевод с языка высокого уровня на машинный язык... а ассемблер - это тот же самый машинный язык, только в удобоваримом для человека формате DelphiWorld 6. Скачай, поставь, и будет тебе счастье=) Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сканнер Паскаля | nusik | Общие вопросы C/C++ | 4 | 24.04.2009 23:04 |
Интерпретатор Паскаля | SvetickPro | Помощь студентам | 1 | 17.10.2008 22:00 |
Русификация паскаля | Exact | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 21.03.2008 14:15 |
Настройка паскаля | Snake_ua | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 18.10.2007 17:56 |
перенос с паскаля на си | Ядовитый | Общие вопросы C/C++ | 2 | 29.06.2007 13:17 |