Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ряд вопросов по FASM 
:(
    Опции темы
scuter
Дата 15.12.2011, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



первый вопрос о форматах файлов

есть такая директива format

MZ — 16-битный формат, основной формат файлов .EXE в DOS.
NE — 16-битный формат, использовался в Windows 3.x[2], OS/2 и MS-DOS
LE — смешанный 16- и 32-битный формат, ранее использовался в OS/2 и Windows (VxD).
LX — 32-битный формат, используется в OS/2.
PE — 32- и 64-битный формат, используется в современных версиях Windows начиная с Windows NT и Windows 95.
COFF, MS COFF, MS64 COFF — объектные файлы.
ELF, ELF64 — исполняемые файлы в UNIX-подобных системах.
ARM — разработка энтузиастов, можно найти на официальном форуме.
Binary — файлы произвольной структуры. Указав смещение 100h (org 100h), можно получить исполняемый файл формата .COM. Также, с помощью format binary можно компилировать файлы данных.

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

к примеру, если мы пишем такой формат
Код

format PE GUI 4.0 DLL at 7000000h on 'stub.exe'

то нам надо ещё вставлять секшансы
Код

section '.text' code readable executable
section '.reloc' data discardable fixups
section '.rsrc' data readable resource from 'my.res'

и хрен его знает какой синтаксис у этих директив
и что это означает

если пишем 
Код

format COFF

то унас добавляются ещё какие то директивы
Код

    extrn exit
    extrn '__imp__MessageBoxA@16' as MessageBox:dword
    public main
    public start as '_start'


с MZ более менее обьеснено segment, entry, stack, heap
только вот как пользовать эти сегменты ?
как сегменты распределюутся по процессору?
для чего они нужны?
какие у них ограничения?


следующий вопрос по дерективе org
что это за директива, что она делает, почему разные значения этой директивы формируют разнае форматы файлов
что самое интересно если поставить org 100h и запустит .com программу с dos(именно dos не MS-DOS)
то можете забыть про сегментные регистры вообще они нахрен не работают

директивы use16 use32 use64
что эти дерективы делают на сколько мне известно
команды 32 это те же самые комманды что и 16 только дополненые
комманды 64 это уже другие команды

скажите когда и как эти дерективы использовать и что они в конце концов делают

директива alpha

что это за директива что она делает, что означает

переменные 
директивы struc, virtual
на сколько я понал эти директи создают вирлуальную модельданнах
то есть у меня есть переменная f_string db 256 dup(0)
в ней первые 4 байта что то означают
потом ещё 2 байта что то означают
потом 8 байт что то означают
и так далее
и для того чтобы я не делал лишних действий 
Код

    mov bx, f_string
    add bx, 4

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

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

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

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


 




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


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

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