Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт окт 23, 2018 5:25 pm

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




Начать новую тему  Ответить на тему  [ 144 сообщения ]  На страницу Пред. 13 4 5 6 710 След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 17, 2013 11:47 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1132
Каждый элемен хранит структуру, в которой объявлено пять переменных типа байт(db) следовательно размер элемента в идеале 5 байт.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Чт июл 18, 2013 12:06 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 976
Храни массив указателей на строки.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 18, 2013 12:31 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1132
Если точнее, то хранятся структуры. Все таже, что и в job. Мне необходимо просто вывести kol элемениов массива начиная с element.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Чт июл 18, 2013 1:06 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 976
Тогда
Код:
ProcessJobArray:
        movzx   eax, [el_index]
        call    GetJob
        mov     esi, eax
        movzx   ecx, [el_quantity]
  .try_next_job:
        ;Process Job element here
        ;.....
        mov     [esi+JOB.done], 1
        inc     [done_jobs_num]
        mov     al, [jobs_num]
        add     al, [el_index]
        cmp     al, [done_jobs_num]
        jle     close_app
    .skip:
        add     esi, JOB.sizeof
        dec     ecx
        jnz     .try_next_job
        ret

;data
el_index db ?
el_quantity db ?



Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 18, 2013 1:29 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1132
Тобишь пропускать действие пока не будет достигнут элемент с которого необходимо начать вывод?

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Чт июл 18, 2013 12:12 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 976
Нет конечно.
call GetJob - получить адрес нужного элемента.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 18, 2013 3:57 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1132
Пока ничего не прояснилось. Кстате, в JOB.done что хранится?

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Чт июл 18, 2013 4:08 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 976
punk_joker писал(а):
Пока ничего не прояснилось.

А что не понятно-то?
Ты посмотри код GetJob.
Что пытался сделать ты:
Цитата:
mov esi, [Jobs]
add esi, JOB.sizeof*0

В место нуля должен быть номер элемента массивп. Номер хранится в переменной element. Если написать add esi, JOB.sizeof*element программа компилируется но не запускается.


Как это делается в предложенном коде:
Код:
   movzx   eax, [el_index]
   imul eax, JOB.sizeof
   mov  esi, [Jobs+eax]


punk_joker писал(а):
Кстате, в JOB.done что хранится?

Флаг - выполнена задача или нет. Нужен для того чтобы исключить повторный запуск одной и той же задачи.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 18, 2013 5:13 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1132
Все ясно. Просто забыл о том сообщении, идиот. А ведь ответ уже давно был дан.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Сб июл 05, 2014 1:29 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1132
В идеале программа должна вывести через notify значение переменной wallpaper из ini-файла, но выводится почему-то не то. Подскажите в чем проблема всеже?


Вложения:
eskin2.zip [1.09 КБ]
100 скачиваний

_________________
я лишь учусь
Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Сб июл 05, 2014 7:21 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 778
вместо строк 32-33:
Код:
   invoke   ini_get_str, ini_path, aDefault, aWallpaper, edi, PATH_MAX_CHARS, 0
   mov [sz_merror2], edi

попробуй написать так:
Код:
   invoke   ini_get_str, ini_path, aDefault, aWallpaper, sz_merror2, PATH_MAX_CHARS, 0

не проверял но думаю что сработает


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Сб июл 05, 2014 9:19 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1132
Спасибо, сработало. Я пробовал, ток брал переменную в [], над теор часть перечитать.

_________________
я лишь учусь


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

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 778
В скобках [sz_merror2] пишется значение по адресу sz_merror2. А функция ini_get_str требует сам адрес sz_merror2 куда будет записана считанная строка, потому без скобок.
В примере стояло значение адреса из регистра edi, хотя сам регистр edi в коде встречается впервые в 32-й строке где идет вызов функции ini_get_str. Получалось что значение писалось по неопределенному адресу ведь в регистре могло быть что угодно. А потом значение регистра edi попадало в 4-е четыре байта по адресу sz_merror2.


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пт авг 29, 2014 3:02 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1132
Пытаюсь загрузить в своей программе драйвер tmpdisk.obj

mcall 68, 16, drv
...
drv db 'tmpdisk'

Но программа падает Page Fault
Затем догадываясь что драйвер переведен в PE пробую так

mcall 68, 21, drv,

в итоге, если я конечно не ошибся, в eax я получаю 0, т.е. драйвер не загружается

Вот код проверки
cmp eax, 0
jnz red
mov [notify_struct.msg], err_load
mcall 70, notify_struct
mcall -1

Если в eax не 0, то рисуем окно , иначе выводим сообщение через нотифи и выходим.

Весь код в аттаче


Вложения:
EXAMPLE.7z [1.45 КБ]
107 скачиваний

_________________
я лишь учусь
Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Пт авг 29, 2014 3:10 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
punk_joker
<<drv db 'tmpdisk' это должен быть полный путь к файлу, а сейчас не пойми что.
Правильная последовательность
Код:
           mov eax, 68
           mov ebx, 16
           mov ecx, имя_сервиса
           int 0x40
           test eax, eax
           jnz .done             
                                 
      mov ebx, 21
      mov ecx, путь_к_драйверу
      mov edx, cmdline
      int 0x40
      test eax, eax
      jz .fail

.done:


Последний раз редактировалось Serge Пт авг 29, 2014 3:15 pm, всего редактировалось 1 раз.

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

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


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

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


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

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