Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн июл 23, 2018 7:14 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 144 сообщения ]  На страницу Пред. 1 2 3 4 510 След.
Автор Сообщение
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Сб дек 17, 2011 4:51 pm 
Не в сети

Зарегистрирован: Чт фев 19, 2009 12:57 pm
Сообщения: 68
scuter, по поводу форматов файлов, сначала определись под какую платформу ты будешь писать?

Если под дос, то это MZ для экзешников или с org 100h в начале если для ком-файлов, если под виндовс, то это PE, если под Linux - то ELF, если под KolibriOS, то скачиваешь колибри сдк с официального сайта и смотришь как выглядят примеры программ.

Форматы NE, LE, LX тебе скорее всего не понадобятся, COFF может понадобиться для написания динамических библиотек под Колибри.

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

Вообще не стоит начинать изучение с flat assembler programmer's manual, это скорее справочник, а не учебник. Там все написано максимально полно (про те же форматы файлов), а не упрощенно для понимания.


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 10:48 pm 
Не в сети

Зарегистрирован: Пн июл 12, 2010 7:03 am
Сообщения: 43
Mario писал(а):
scuter
Так не катит?
Код:
align 4
vesa_block VESAInfoBlock
;-----------------------------------------------------------------------------
mov eax, [vesa_block.VESASignature]

или

mov eax, vesa_block.VESASignature
cmp [eax],byte 'V'

и не забываем про нужные include

такое дело не срабатывает,
пишет ундефайнд симбол(Undefined symbol)
может дело в это инклюде(include) который
Mario писал(а):
и не забываем про нужные include


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 10:52 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
scuter, ты вообще читаешь, что тебе пишут? Фигурные скобки нужны.


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 11:00 pm 
Не в сети

Зарегистрирован: Пн июл 12, 2010 7:03 am
Сообщения: 43
SoUrcerer писал(а):
scuter, ты вообще читаешь, что тебе пишут? Фигурные скобки нужны.

ты про какие скобки говоришь,
все посты несколько раз прочитал


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 11:08 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Блин, туплю. Наоборот. Либо убирать фигурные скобки, либо ставить точки перед именами в определении структуры.


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 11:26 pm 
Не в сети

Зарегистрирован: Пн июл 12, 2010 7:03 am
Сообщения: 43
Insolor писал(а):
Вообще не стоит начинать изучение с flat assembler programmer's manual, это скорее справочник, а не учебник. Там все написано максимально полно (про те же форматы файлов), а не упрощенно для понимания.

flat assembler programmer's manual
это не мануал, это просто приписка(типа мы ето умеем)

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

я в дейтсмительности очень благодарен Mario IgorA за ихние ответы, они очень помогли,
а вот посты от mike.dld только раздражать могут.

SoUrcerer писал(а):
Блин, туплю. Наоборот. Либо убирать фигурные скобки, либо ставить точки перед именами в определении структуры.


то есть мне надо писать структуру без скобок что бы использовать переменные через точку
то есть так
Код:
struct SIZE
  cx dd ?
  cy dd ?
ends
  mov eax, SIZE.cx


оно не работает


Последний раз редактировалось scuter Пн дек 19, 2011 11:54 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 11:33 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Я знаю таких людей как ты. Пока не напишешь им решение, не отстанут. А попытки заставить поработать головой ни к чему не приводят, не смотря на уверения в том, что это таки обязательно условие.

Вот тебе два примера, которые "работае":
Код:
include 'struct.inc'

; ...

struct SIZE
  cx dd ?
  cy dd ?
ends

; ...

        mov     eax, SIZE.cx
Код:
; ...

struc SIZE
{
  .cx dd ?
  .cy dd ?
}

virtual at 0
  SIZE SIZE
end virtual

; ...

        mov     eax, SIZE.cx

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 11:46 pm 
Не в сети

Зарегистрирован: Пн июл 12, 2010 7:03 am
Сообщения: 43
Код:
struc rsn
  {
    s db 'practes'
    r db 'video'
    rl = $-r
  }
  struc rsr
  {
    zs db 256 dup (?)
    zr db 256 dup (?)
  }
  virtual at 0
    rn rsn
    rz rsr
  end virtual
  mov si, rn.s

это не работает,
ни тот ни другой пример.


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 11:53 pm 
Не в сети

Зарегистрирован: Пн июл 12, 2010 7:03 am
Сообщения: 43
Код:
struc VESAInfoBlock
{
  VESASignature     db 'VESA'       ;VESA сигнатура
  VESAVersion       dw ?            ;версия VESA (0100h, 0102h или 0200h)
  OemStringPtr      dd ?            ;указатель на строку с именем производителя (заканчивается "0")
  Capabilities      db 4 dup (?)    ;флаги графических возможностей
  VideoModePtr      dd ?            ;указатель на список видеорежимов
  TotalMemory       dw ?            ;размер видеопамяти в 64-Кбайт блоках
  ; Дополнительно в VBE 2.0 добавлены поля:
  OemSoftwareRev    dw ?            ;номер версии реализации VBE
  OemVendorNamePtr  dd ?            ;указатель на строку с именем поставщика
  OemProductNamePtr dd ?            ;указатель на строку с названием продукта
  OemProductRevPtr  dd ?            ;указатель на строку с версией продукта
  Reserved          db 222 dup (?)  ;зарезервировано; область расширения блока
  OemData           db 256 dup (?)  ;область данных для строк производителя
}
virtual at 0
  VESA VESAInfoBlock
end virtual

mov eax, VESAVersion

вот это работает


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 11:55 pm 
Ты когда пишешь что не работает - пиши на что тебе FASM ругается. Скриншот сделай в крайнем уж случае. Все-же ситуации разные бывают.


Вернуться к началу
   
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пн дек 19, 2011 11:59 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Я человек терпеливый (иногда), даже когда меня пытаются сравнивать с дебилом, но это уже переходит границы. Объясняю последний раз то, что должно было бы уже быть давно понято.
`struc` - это ключевое слово ассемблера. При объявлении структур с его использованием, необходимо предварять имя каждого члена структуры точкой (`.`) и обрамлять список членов фигурными скобками (`{` и `}`).
`struct` - это макрос, объявленный в файле struct.inc из стандартной поставки ассемблера. При объявлении структур с его использованием, имя каждого члена структуры предварять точкой (`.`) не нужно, а заканчивать список членов нужно ещё одним макросом, `ends`.
Что из этого тебе непонятно? Внимательно ли ты прочитал мой предыдущий пост, чтобы заметить в примерах то, что я сейчас объясняю на пальцах?

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт дек 20, 2011 12:10 am 
Не в сети

Зарегистрирован: Пн июл 12, 2010 7:03 am
Сообщения: 43
Mario писал(а):
Ты когда пишешь что не работает - пиши на что тебе FASM ругается. Скриншот сделай в крайнем уж случае. Все-же ситуации разные бывают.

scuter писал(а):
пишет ундефайнд симбол(Undefined symbol)

в ином случае пишет

include 'struct.inc'
error:file not found.

или

error: unexpected characters.


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт дек 20, 2011 12:13 am 
Не в сети

Зарегистрирован: Пн июл 12, 2010 7:03 am
Сообщения: 43
mike.dld писал(а):
Я человек терпеливый (иногда), даже когда меня пытаются сравнивать с дебилом, но это уже переходит границы. Объясняю последний раз то, что должно было бы уже быть давно понято.
`struc` - это ключевое слово ассемблера. При объявлении структур с его использованием, необходимо предварять имя каждого члена структуры точкой (`.`) и обрамлять список членов фигурными скобками (`{` и `}`).
`struct` - это макрос, объявленный в файле struct.inc из стандартной поставки ассемблера. При объявлении структур с его использованием, имя каждого члена структуры предварять точкой (`.`) не нужно, а заканчивать список членов нужно ещё одним макросом, `ends`.
Что из этого тебе непонятно? Внимательно ли ты прочитал мой предыдущий пост, чтобы заметить в примерах то, что я сейчас объясняю на пальцах?

спасибо теперь понял.
mike.dld писал(а):
Я человек терпеливый (иногда), даже когда меня пытаются сравнивать с дебилом.

прошу прощение за аскарбление,

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


Последний раз редактировалось scuter Вт дек 20, 2011 12:18 am, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт дек 20, 2011 12:16 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
scuter писал(а):
пишет ундефайнд симбол(Undefined symbol)
в ином случае пишет

include 'struct.inc'
error:file not found.


Nuff said.
Спойлер: Показать
Всем добра в этом треде.
Изображение


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт дек 20, 2011 12:20 am 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Что касается ошибки "file not found", то на русский язык она переводится как "файл не найден", что в пояснении не нуждается. FASM ожидает обнаружить в кавычках полный путь к файлу ("C\abc\def.inc" или "/abc/def.inc") или же относительный путь (который не начинается со спецификации диска или символа "/"). В последнем случае, FASM пытается найти файл относительно расположения исходного файла, содержащего директиву `include`, или же, если не получилось, относительно директории, в которой был запущен сам ассемблер (то есть, рабочей директории на момент его запуска).

_________________
in code we trust


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 144 сообщения ]  На страницу Пред. 1 2 3 4 510 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB