Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт дек 12, 2017 9:18 am

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




Начать новую тему  Ответить на тему  [ 144 сообщения ]  На страницу Пред. 16 7 8 9 10 След.
Автор Сообщение
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт ноя 04, 2014 8:31 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Mario_r4 писал(а):
имхается мне нужно тебе сесть и разобраться с методами адресации, чую Юрова ты либо не читал, либо просматривал по диагонали.

Сегодня же вечером сяду перечитывать раздел. Просто у меня проблема с пониманием адресации немного. Я и в C++ с указателями не сдружился. Пора браться за проблему серьезно.

_________________
я лишь учусь


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

Зарегистрирован: Чт окт 23, 2014 6:12 pm
Сообщения: 8
В процессе изучения ассемблера и попыток написать что-нибудь возник вопрос: Как оптимальнее хранить в памяти большое количество (11 значений на структуру) переменных из конечного множества значений (2-15 значений).
И если чем-то вроде Record, то как лучше реализовать?


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

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
haitaka
Нужно хранить одну структуру или массив структур?


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

Зарегистрирован: Чт окт 23, 2014 6:12 pm
Сообщения: 8
Asper
Массив


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

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Прочти эту тему, начиная отсюда.


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

Зарегистрирован: Чт окт 23, 2014 6:12 pm
Сообщения: 8
Спасибо. Но всех ответов я, к сожалению, найти не смог.
Где всё-таки хранить такие маленькие значения? Записать подряд битами и после мучаться с масками, или выделить под каждое по байту/двойному слову?


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Сб ноя 08, 2014 12:23 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
haitaka писал(а):
Спасибо. Но всех ответов я, к сожалению, найти не смог.
Где всё-таки хранить такие маленькие значения? Записать подряд битами и после мучаться с масками, или выделить под каждое по байту/двойному слову?

Делайте как вам удобней - никто вас в вашей программе не ограничивает. Сделать "сразу все правильно" задача не реалистическая.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Чт ноя 13, 2014 6:52 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
haitaka
Это зависит от размера массива. Если он в несколько раз превышает размер кеша CPU и требуется быстрый произвольный доступ к записям стоить подумать над оптимизацией. В твоём случае я бы хранил 4-х битные индексы в таблице значений (если я правильно понял условия задачи) если в массиве было бы за миллион записей.


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

Зарегистрирован: Чт окт 23, 2014 6:12 pm
Сообщения: 8
Serge
Спасибо. Теперь примерно понимаю, что мне нужно.


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

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Аналогично в записи dword[devbuf+8] восьмёрка прибавляется не к адресу буфера (это было бы [devbuf]+8, но такой инструкции тоже нет), а к адресу адреса. Если devbuf указывает на зарезервированное двойное слово, то devbuf+8 будет указывать на 8 байт после него, т.е. куда-то за переменную dir. Что лежит по этому адресу неясно. Тут тоже нужно использовать промежуточный регистр <<<<

mov eax, [devbuf]
add eax, 8

Так верно?

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Чт ноя 20, 2014 2:34 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
punk_joker
Ты лучше на русском языке скажи чего ты хочешь выполнить, а то этот поток мыслей трудно разобрать.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Чт ноя 20, 2014 6:21 am 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Пн окт 19, 2009 10:58 am
Сообщения: 343
Я уже забыл, о чём речь, но должно быть верно; в отладчике посмотри.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт ноя 20, 2014 12:02 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Как правильно прочитать папку?
Насколько я понимаю, надо в начале определить коичество файлов в папке. Это можно сделать вызвав ф70.1 с 0 в 5 поле структуры, те самым прочитав лишь заголовок в 32 байта, оттуда взять количество фацлов в папке, и на основе этого уже выделить необходимое количество память под буфер, и передать это число, как количество блоков,которые надо прочитать.

_________________
я лишь учусь


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

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
punk_joker
Да, все верно.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


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

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Имеется задача, получить список имеющихся дисков. После неудачных попыток и глупых вопросов тут, я все же более внимательно просмотрел существующие примеры работы с ФС на SVN (в частности OpenDialog) и все же получил работающий код, но результат немного не тот что я ожидал. После выполнения кода приведенного ниже, в eax я получаю 75. при количестве дисков 6. В чем проблема?

Код:
Спойлер: Показать
mcall 68, 12, 32
mov [dirinfo.return], eax
mcall 70, dirinfo
mov eax, [dirinfo.return]
mov eax, [eax+8]


Переменные
Спойлер: Показать
dirinfo:
.subfunction dd 1
.start dd 0
.flags dd 0
.size dd 0
.return dd 0
db 0
.name: dd root_pach

root_pach:
db '/',0

_________________
я лишь учусь


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 144 сообщения ]  На страницу Пред. 16 7 8 9 10 След.

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


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

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


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

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