|
|
|
ТарасАтавин |
|
|||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Я начинающий компиляторописака. С чего начинать создание приложения на ASM и в опкоде и изучение вопроса? Надо ли вообще раскладывать регистры по сегментам и как? Как это выглядит в коде исполняемого файла? Каким образом возвращается значение при завершении приложения? Как получить доступ к параметрам функции
-------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
Начнем с того что это не так. main - это библиотечная функция, которая вызывается после всяких инициализаций. Консольный ввод/вывод так же выполняется библиотечными функциями обертками, которые в свою очередь могут использовать WinAPi. С такими вопросами тебе рановато "компиляторописательством" заниматься ИМХО. Добавлено через 9 минут и 43 секунды http://board.flatassembler.net/topic.php?t=3437 Это сообщение отредактировал(а) _zorn_ - 3.9.2013, 10:12 |
|||
|
||||
bems |
|
||||||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
с точки зрения прикладного процесса - вызовами API ReadFile/WriteFile
-------------------- Обижено школьников: 8 |
||||||
|
|||||||
ТарасАтавин |
|
|||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Бред. Автор консольной проги функцию main пишет сам.
Это сообщение отредактировал(а) ТарасАтавин - 4.9.2013, 08:11 -------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
Бред. Автор консольной проги НА АСМЕ может назначить точку входа куда угодно, даже не на функцию. И почитайте про PE формат хотя бы. |
|||
|
||||
ТарасАтавин |
|
|||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Возможно это так на низком уровне c++-программы. Но если нет глобальных объектов, то первая явная (прописанная на высоком уровне) операция находится в main, отсюда иное понимание точки входа у крестанутых. Хорошо, пусть на самом деле это не так. А что отвечает за инициализации? Система? Или ещё одна подпрограмма приложения? В первом случае точка входа всё таки в main и к разрабатываемому компилятору это относится вне зависимости от наличия глобальных объектов, так как вызов глобальных конструкторов он, в отличие от компиляторов c++, должен неявно добавить в main. А во втором случае на что она вообще похожа?
Добавлено через 3 минуты и 10 секунд А на уровне операций это как выглядит? Специфично ли это именно для c/c++? А на паскале как возвращается значение? -------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
В прошлый раз не правильно выразился. main - функция вызываемая ИЗ библиотечных функций инициализации. Которые в свою очередь и подготавливают параметры для main.
|
|||
|
||||
ТарасАтавин |
|
||||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Добавлено через 1 минуту и 46 секунд
-------------------- Не так всё плохо, как оно есть на самом деле. |
||||
|
|||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
||||
|
||||
ТарасАтавин |
|
|||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Добавлено через 46 секунд А где бы почитать описание формата заголовка PE? Добавлено через 1 минуту и 54 секунды Что это? -------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
||||
|
||||
ТарасАтавин |
|
|||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
И регистры по сегментам надо раскладывать?
-------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
Что что ? Начни с простого http://ru.wikipedia.org/wiki/Portable_Executable IDA - https://www.hex-rays.com/products/ida/suppo...load_demo.shtml Понадобится для х64 (полная), сам найдёш. |
|||
|
||||
ТарасАтавин |
|
|||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
-------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
Батенька, да вам пока еще из msdn рано вылазить.
А так на вскидку первое что пришло в голову. http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx Добавлено через 9 минут и 26 секунд Для вызова функции есть секция импорта (читай про PE формат, БЛДЖАД) А на остальные вопросы, есть такое страшное словосочетание - конвенция вызовов |
|||
|
||||
Правила форума "Asm для Windows/DOS" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |