14 / 14 / 6
Регистрация: 11.07.2015
Сообщений: 147
1

Структура *.exe файла. Создание компилятора

27.10.2015, 00:25. Показов 1811. Ответов 6
Метки нет (Все метки)

Всем привет! Подходящего раздела я не нашел, поэтому пишу в самый подходящий из тех, что есть.
Решил создать свой язык программирования и компилятор к нему, поэтому решил изучить внутреннюю структуру *.exe файла. Для этого я решил использовать инфографику, которая находится тут. Насколько я понял, это минимальный код *.exe файла, который будет работать на Windows, и выводить окно с сообщением. Конечно, тут не предусмотрено того, что этот файл могут еще и в DOS попробовать запустить, но для Windows, насколько я понял, он должен работать. Для начала создания компилятора я решил просто создать программу, которая будет генерировать *.exe файл с кодом, приведенным в данной инфографике. Я создал данную програму, но сгенерированный программой файл не запускается, пишет: "Невозможно запустить это приложение на вашем ПК. Чтоб найти версию для вашего компьютера, обратитесь к издателю приложения." Смотрел содержимое файла через HEX-editor, вроде все соответствует, единственное, если есть промежуток между блоками, я его заполнял нулями. Вот ссылка на сгенерированный файл:
http://vk.com/doc170685899_429260772
Заранее благодарен за помощь!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2015, 00:25
Ответы с готовыми решениями:

Запуск компилятора pabcnetc.exe из .bat файла
Есть .bat, который должен запускать в цикле перекомпиляцию всех примеров на PascalABC.NET из данной...

Первое НЕ открытие .exe файла после компилятора
Во многих учебниках предлагают вначале всегда простую программу вывода текста. Предлагают...

Структура exe файла
если открыть exe файл hex редактором, то отобразится набор байт, подскажите как увидеть структуру...

Структура EXE файла
Здравствуйте! Очень заинтересовался строением всякого рода программ на уровне байтов. И начал я с...

6
3174 / 1933 / 313
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
27.10.2015, 01:00 2
Microsoft PE and COFF Specification
Миниатюры
Структура *.exe файла. Создание компилятора  
1
14 / 14 / 6
Регистрация: 11.07.2015
Сообщений: 147
27.10.2015, 01:50  [ТС] 3
Спасибо за ответ! Буду разбиратся.

Добавлено через 45 минут
Еще такой вопрос: насколько я знаю, перед завершением программы стек должен быть очищен. Нужно ли очищать стек в данном случае (в инфографике его не очищали)?
0
75 / 95 / 13
Регистрация: 26.01.2014
Сообщений: 629
27.10.2015, 02:03 4
Рекомендую в Ассемблере набить какую простейшую программку из любого учебника, распечатать ее коды, прогнать через транслятор и сборщик и то, что вышло сравнить с чистыми кодами Ассемблера. Становится понятно чего там добавляется, и как составить программку собственно в кодах, загнав ее в память скажем, отладчиком. Когда-то умение работать в кодах считалось Высшим Пилотажем. Всегда твой - Etien
1
3174 / 1933 / 313
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
27.10.2015, 02:14 5
Цитата Сообщение от anem Посмотреть сообщение
Нужно ли очищать стек
Если это не крипто-приложение, где "отступая, сжигают все мосты", об "очистке" можете не беспокоиться.
1
14 / 14 / 6
Регистрация: 11.07.2015
Сообщений: 147
27.10.2015, 12:47  [ТС] 6
Цитата Сообщение от gazlan Посмотреть сообщение
Если это не крипто-приложение, где "отступая, сжигают все мосты", об "очистке" можете не беспокоиться.
Спасибо! Просто когда я писал программы на ассемблере, то если перед завершением не очистить стек, то после выполнения программы выскакивало сообщение, что "Произошла неожиданная остановка приложения..."
0
Ушел с форума
Автор FAQ
15463 / 7297 / 937
Регистрация: 11.11.2010
Сообщений: 13,178
27.10.2015, 12:57 7
anem,
если завершать программу командой RET, тогда за состоянием стека придется следить, но обычно завершается через int 20h или через mov ah,4Ch/int 21h в DOS'e или через call ExitProcess в Windows и программе глубоко фиолетово очистили стек или нет
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2015, 12:57
Помогаю со студенческими работами здесь

Создание exe файла!
Запустил Visual Studio 2005, создал проект Windows Application, написал программу. Но тут возник...

Создание exe файла
Здравствуйте хочу узнать возможно ли в VBA создать exe файл, что бы каждый раз не открывать...

Создание exe файла
Код написал на идее, скомпилировал, появился .jar файл. С помощью launch4j попробовал перевести...

Создание exe файла
Здравствуйте! Прочитал тему "Создание exe файла в MatLab", решил попробовать. Дошёл до шага -...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru