Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Конвертер из паскаля в ассемблер  (Прочитано 43228 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
balaban
Гость
« : 06-09-2007 05:47 » 

Добрый день!

Господа профессионалы, подскажите существует ли конвертер программ из паскаля в ассемблер?
Очень срочно надо.

С уважением Александр.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 06-09-2007 06:00 » 

balaban,

1) во первых, не плоди темы ОДИНАКОВЫЕ.

2) такой конвертер называется компилятор (правда не в ассемблер, а в машинные коды), но точно не подскажу, ждём паскалевиков )

кстати, в какой среде писалась то программа ?

3) для чего это нужно (конвертить в ассемблер с паскаля)?
« Последнее редактирование: 06-09-2007 06:13 от Алексей1153++ » Записан

Tuborg
Модератор

ee
Offline Offline

« Ответ #2 : 06-09-2007 06:32 » 

компилятор действительно компилирует в некий объектный код, который и есть список ассемблерных инструкций, только не в символьном представлении а заменённый на шестнадцатиричные коды вызова процессорных "функций". Для вас стоит проблема в переводе этого объектного кода в символьный вид. Это зависит от конкретной реализации компилятора. Например в борландовских компиляторов существует опция включения генерации файла ассемблерного листинга. Если быть точным там есть способ компиляции при котором на выходе генерится символьный листинг ассемблерных инструкций, а потом этот промежуточный файлик подсовывается ассемблерному компилятору. Если же такая опция в вашем компиляторе отсутствует (назовите ваш компилятор) то ещё можно взглянуть на список ассемблерных инструкций в отладчике.

Теперь ближе к телу,как поговаривал ги-де Мопассан =). Для чего сиё надо? если сдать в институте курсовик по ассемблеру.... то вы сами себе копаете яму. Во первых задания в инсте не слишком сложные... постите сюда поможем решить. Во вторых такой способ получения ассемблерного кода не слишком приятнаая штука... для большой проги на ассемблере вы получите плохо читаемый код по которому вас препод по-любому вычислит.

Если же это делается для поиска багов в проге либо локальной оптимизации то тут надо глубже копаться в опциях компилятора, поскольку при дизассемблировании вы будете получать немножко не то же самое что и в исполняемом файле.

Определитесь с целью в общем.
Записан
balaban
Гость
« Ответ #3 : 06-09-2007 07:24 » 

Приношу свои извинения, хотел побыстрее получить ответ и сначала не увидел раздел для новичков.
Проблема такая: по ошибке были сделаны задачи вместо ассемблера на паскале. С ассемблером совсем туго, можно сказать вообще ни как, поэтому и надо перевести с одного языка на другой.

Вообще задачи такие, может для кого-то они и не сложные:

Код:
1. Даны натуральное число n, действительные числа x1,...,xn.  Получить в порядке следования все xk, удовлетворяющие неравенствам xk > x1, xk > x2,..., 
xk > xk-1.
2. Дано натуральное число n (n ≤ 100).
    а) Сколько цифр в числе n?
    б) Чему равна сумма его цифр?
    в) Найти последнюю цифру числа n?
    г) Найти первую цифру числа n?
    д) В предположении, что n ≥10, найти предпоследнюю цифру  числа n.
3. Даны символы s1, s2,... Известно, что  символ  s1  отличен  от восклицательного знака и что среди s2, s3,...   есть  по  крайней  мере один восклицательный знак. Пусть s1,...,sn -символы данной последовательности, предшествующие первому восклицательному знаку  (n  заранее неизвестно).
а) Выяснить, имеется ли среди s1,...,sn пара соседствующих букв но или он.
б) Выяснить, имеется ли среди s1,...,sn пара соседствующих  одинаковых символов.
в) Выяснить, верно ли, что существуют такие натуральные i и j,  что 1 < i < j < n и что si совпадает с si+1, а sj – sj + 1.

Надо срочно сделать, а как сделать не знаю.

С уважением, Александр.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 06-09-2007 07:52 » 

balaban, вот что можно тут на вскидку придумать: если преподаватель - умный человек, а программа, которую ты (именно ты, не так ли?) написал, причём программа работает (правильно, быстро) , то с преподавателем можно найти общий язык. Если ты действительно по ошибке реализовал алгоритм программы не на том языке, который в задании, то так и объясни. Ибо правильность алгоритма не зависит от языка, на котором он реализован. Так же как и екзешнику по барабану, на чём он был написан - он просто работает Улыбаюсь Главное, не жаловаться об этой ситуации преподавателю, а обосновать, почему не стоит переделывать программу на ассемблер.
Записан

Tuborg
Модератор

ee
Offline Offline

« Ответ #5 : 06-09-2007 09:18 » 

Я думаю задача была не в реализации алгоритмов, а в изучении ассемблера... поэтому врядли договорится.
Записан
Tuborg
Модератор

ee
Offline Offline

« Ответ #6 : 06-09-2007 09:20 » 

Давай сделаем так... сделай компилятором паскаля листинги ассемблерные и приаттачь их здесь... можно попробовать причесать. Вроде програмки не большие... сколько на паскале строчек они занимают? (Приложи ещё отдельно паскалевские исходники)
« Последнее редактирование: 06-09-2007 09:24 от Tuborg » Записан
balaban
Гость
« Ответ #7 : 06-09-2007 09:35 » 

Вот выкладываю как понял

* экзешники.rar (9 Кб - загружено 1186 раз.)
* исходники.rar (1.75 Кб - загружено 1229 раз.)
Записан
Tuborg
Модератор

ee
Offline Offline

« Ответ #8 : 06-09-2007 10:51 » 

Вместо экзешников (они нам ничем не помогут) выложи ассемблерные листинги. У тебя какой компилятор?
Записан
balaban
Гость
« Ответ #9 : 06-09-2007 11:26 » 

так у меня нет листингов ассемблеровских, а компилятор TASM
Записан
balaban
Гость
« Ответ #10 : 06-09-2007 11:28 » 

turbo debugger наверное будет правильнее
Записан
Tuborg
Модератор

ee
Offline Offline

« Ответ #11 : 06-09-2007 11:58 » 

Я же тебе сказал как их сделать, невнимательно читаешь.... и похоже что у тебя борландовский компилятор, хоть ты упорно об этом не хочешь говорить. Ищи в опциях компилятора Compiling via assembler.
Записан
balaban
Гость
« Ответ #12 : 06-09-2007 14:06 » 

да стоит борландовский компилятор седьмой версии. такой строчки не нашел, кроме как во вкладке тулз tubro assembler
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 06-09-2007 20:02 » 

могу предложить freepascal получить исходники асма, как я понял из док он это может
а лучше турбодебаггер с дебагинфой  и будет товарисчу лентяю счастье
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
balaban
Гость
« Ответ #14 : 07-09-2007 01:12 » 

Sla, если есть такая возможность выложить, выложи, пожалуйста, freepascal
Записан
balaban
Гость
« Ответ #15 : 07-09-2007 01:14 » 

хотя по дистрибутивам большой архив получается
Записан
balaban
Гость
« Ответ #16 : 07-09-2007 03:44 » 

можно ли все-таки в turbo pascal-е сделать асемовские листинги? В опциях компилятора такой строчки нет Compiling via assembler.
Записан
balaban
Гость
« Ответ #17 : 07-09-2007 03:51 » 

можно стучать в асю 381772107
Записан
balaban
Гость
« Ответ #18 : 07-09-2007 07:35 » 

нашел и скачал freepascal. в опциях->компилер нашел только использовать ассемблер. А как сделать листинг-то?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #19 : 07-09-2007 13:41 » 

Насколько я знаю, при компилировании можно задать опцию. Тогда весь код будет переводится в ассемблер. Но сразу скажу, что любой нормально мысляший преподаватель, сразу раскусит хитрость. Все таки, когда пишет человек код, и компилятор это две большие разници.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 07-09-2007 17:49 » 

Finch, все правильно, раскусит, но если чел расскажет, для чего, почему исполльзован именно этот метод адресации, или именно это команда, то любой адекватный препод простит "халявность" кода
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
balaban
Гость
« Ответ #21 : 08-09-2007 06:03 » 

кто-нибудь пользовался freepascal-ем? Как правильно в нем сохранить в асемовских файл?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #22 : 08-09-2007 08:52 » 

balaban, я не пользовался, но обычно рядом с продуктами компиляции получается файлик *.lst  Поищи его (в правильности не уверен)
Записан

balaban
Гость
« Ответ #23 : 09-09-2007 08:31 » 

народ, а кто-нибудь может сделать выше указанные задачи на асеме сразу, не переделывая с паскаля?
Записан
Tuborg
Модератор

ee
Offline Offline

« Ответ #24 : 09-09-2007 11:03 » 

Насколько я понял ты подчищаешь хвосты в институте за прошлый год  Что, съел?.  Если хочешь чтобы это сделал кто-то другой, то скажу сразу - нужно за это заплатить. Сколько готов выложить за это? Здесь есть на форуме раздел - предлагаю работу - можно туда... А можешь здесь сразу написать и все кто здесь высказывался по этому поводу смогут за определённую сумму тебе решить твою проблему.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 09-09-2007 11:32 » 

Tuborg, ты не совсем прав. Были бы интересные задачи (а не из класса типовых) да ещё было бы время писать эти программы - то бы написали и бесплатно
Записан

Tuborg
Модератор

ee
Offline Offline

« Ответ #26 : 09-09-2007 12:40 » 

Алексей1153++, задачи типовые и времени писать я думаю найдётся здесь не у многих... а человеку светит вылет из института как минимум... Просто указал кратчайший путь =)
Записан
balaban
Гость
« Ответ #27 : 09-09-2007 12:49 » 

Кто и за сколько готов взяться за эти работы?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #28 : 09-09-2007 12:53 » 

Tuborg, я , конечно, всё понимаю, но вылет не грозит. Сам был недавно студентом и знаю, что прижатый сессией к стене студент способен на чудеса Улыбаюсь . В конце концов, полно тех же студентов одногруппников, которые всё быстро и по горячим следам решат. Включая и за деньги. Сам этим занимался ))

balaban, я не готов, извини
Записан

Tuborg
Модератор

ee
Offline Offline

« Ответ #29 : 09-09-2007 13:07 » 

balaban, когда надо? Я в понедельник буду на работе выкачаю freepascal и сделаю листинги... и совместными усилиями мы их тут причешем к человеческому виду =) если с нуля то по задачам возникает вопрос - нужен ли диалог с пользователем или откуда брать входные данные?

Дело в том что на ассемблере реализовать отдельно ввод/вывод информации от пользователя или из файла - отдельная головная боль =)

Ты говоришь что в freepascal'е нашёл опцию компилировать через ассемблер. Какие файлы при этом создаются кроме эезешника?
« Последнее редактирование: 09-09-2007 13:17 от Tuborg » Записан
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines