Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка 
V
    Опции темы
try_to_get
  Дата 5.8.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



Написал все как в книге, а исполняемый файл не создался?!  smile 
Код

.386
.model flat,stdcall
.code
start:
mov eax,2
add eax,3
ret
end start

Где ошибка никто не занет?


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
try_to_get
Дата 5.8.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



Цитата

C:\myasm\BIN>amake.bat

C:\myasm\BIN>ml /c /coff ".asm"
Microsoft ® Macro Assembler Version 6.14.8444
Copyright © Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: .asm
MASM : fatal error A1000: cannot open file : .asm

C:\myasm\BIN>link /SUBSYSTEM:CONSOLE ".obj"
Microsoft ® Incremental Linker Version 5.12.8078
Copyright © Microsoft Corp 1992-1998. All rights reserved.

LINK : fatal error LNK1181: cannot open input file ".obj"



--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
cardinal
Дата 5.8.2007, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Пропиши полностью название файла. Мне кажется в этом загвоздка...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
try_to_get
Дата 5.8.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



Урааа....  smile Спасибо!


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
cardinal
Дата 5.8.2007, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Не за что... smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
try_to_get
Дата 5.8.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



А почему он так много весит?
1 024 bytes


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
cardinal
Дата 5.8.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Открой каким-нибудь Hex-Editor'ом и посмотри в нем размер...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Shaggie
Дата 7.8.2007, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: нет
Всего: 72



Цитата(try_to_get @  5.8.2007,  19:53 Найти цитируемый пост)
А почему он так много весит?
1 024 bytes 

Цитата

В Windows минимальное выравнивание секций 512 байт, т.к. PE-формат предпологает заголовок, размер которого отнюдь не нулевой, то секция кода начнется как минимум с 512 байта и будет как минимум 512 байт. Итого, минимальный размер - 1кб.
Конечно, можно выбросить нули, которые добивают секцию кода до 512 байт, но это будет нарушением формата PE-файлов и не все загрузчики его загрузят.

Т.о. минимальный валидный PE-файл может быть не менее 1кб.

с форума codenet

Это сообщение отредактировал(а) Shaggie - 7.8.2007, 07:45


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
try_to_get
Дата 7.8.2007, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



Shaggie  У меня еще один есть компилятор MASM он создает файл с размером примерно 500 байт, где- то еще читал WASM чтоли создает 81 байт что они не придесживаются стандарту PE-файлов??? 


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
Shaggie
Дата 7.8.2007, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: нет
Всего: 72



Цитата(try_to_get @  7.8.2007,  08:57 Найти цитируемый пост)
еще один есть компилятор MASM он создает файл с размером примерно 500 байт

Директива /ALIGN линкеру задаёт размер выравнивания, читай Касперски и экспериментируй. В итоге можно добится того, что секция кода практически перестанет забиваться нулями, то есть в файле будет заголовок = 512 байт и совсем немного кода. С учётом того, что над заголовком тоже можно издеваться и отрезать нули...

Цитата(try_to_get @  7.8.2007,  08:57 Найти цитируемый пост)
где- то еще читал WASM чтоли создает 81 байт

WASM - не ассемблер, а сайт, посвящённый ассемблеру... никогда про такое не слышал.

try_to_get, рекомендую забить пока на эту оптимизацию и сосредоточиться на самом ассемблере. Выигрыш незначителен, траблов много. Это интересно для самостоятельного изучения и понимания принципов работы PE-файлов, но не более того.

На сладкое прикладываю файл с экзешником, весящим 302 байта. Сразу предупреждаю - не я писал.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  302.zip 1,37 Kb


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
try_to_get
Дата 7.8.2007, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



Цитата

WASM - не ассемблер, а сайт, посвящённый ассемблеру... никогда про такое не слышал.

Вот здесь видел 4.2. Программа типа ЕХЕ, там внизу такая запись:

Цитата

Для WASM:

wasm hello-2.asm
wlink file hello-2.obj form DOS

Размер получаемого файла hello-2.exe — 81 байт.


1.1 Что потребуется для работы с ассемблером здесь написано, что WASM создан Watcom


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
Shaggie
Дата 7.8.2007, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: нет
Всего: 72



Ага, Watcom Assembler... посыпаю голову пеплом  smile 

Цитата(try_to_get @  7.8.2007,  10:11 Найти цитируемый пост)
form DOS

У исполняемых файлов под DOS другой заголовок. Точнее сказать, современный PE-формат файлов в Windows является расширением MZ-формата DOS. Насколько я помню (могу ошибаться), в DOS заголовок файла 64 байта, плюс код - как раз получается 81 байт. Но такой файл не будет запускаться в Windows.

Из того же листинга
Цитата

.model     small
.stack     100h

Это устаревшая директива создания .exe файла, сейчас используется .model flat
Плюс ко всему в коде используется 1) 16 разрядные регистры, 2) 21 прерывание. Если использование 16 разрядных регистров просто неэффективно, то практически к любому прерыванию напрямую из-под защищённого режима операционной системы обращаться запрещено.


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
try_to_get
Дата 7.8.2007, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



У меня возник вопрос насчет регистров!?  smile 
Не зняю правильно ли я понял!

регистры
eax, ecx и т.д. 32 разрядные. У меня процессор 64 разрядный, значит у него есть 64 разрядные регистры?
Это так или я ошибаюсь?


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
Shaggie
Дата 7.8.2007, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: нет
Всего: 72



Не ошибаешься. Только чтобы работать с 64 разрядными регистрами, нужна поддерживающая их операционка :( И вообще народ серьёзно спорит о том, нужна ли на десктопе 64 разрядность. Бывают мнения, что это не есть гут.

Однако если только учишься - сначала классический 32 разрядный ассемблер освоить нужно.


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
try_to_get
Дата 7.8.2007, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



Понятно!  smile

Добавлено через 6 минут и 6 секунд
Shaggie, спасибо за помощь! Я думаю, вопрос решен и тему можно закрыть.


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0660 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.