Просмотр полной версии : Хранение большого объема данных в ассемблере.
В общем, от нефиг делать пишу демку небольшую... Оцифрока изображения и подгонка идет нормально, но... Делается это все в бейсике. Что не есть гут, потому как медленно да и неудобно. Для того, чтобы посмотреть подгонку элемента нужно ждать несколько секунд, пока бейсик пройдется по DATA... Ну вы сами, наверное знаете. В общем, для ускорения вывода изображения, попутно с оцифровкой решил перенести все на ассемблер. Но вот как хранить те данные (которые в бейсике в DATA хранятся) в ассемблере я не представляю... По крайней мере четко.
С одной стороны есть DEFB. Но как её использовать для этой цели - не представляю. Второй вариант (правда кажется уж очень геморрным) - перекидывать данные через аккумулятор в память, а затем перекидать их оттуда в экранную область ОЗУ. Но, цифорок будет много. В аккурат на весь экран демка. Быть может можно как-то организовать массив или что-то подобное? Что-бы не пихать вручную каждое значение в свою ячейку памяти. Время не горит, демку только начал делать, но, хотелось бы знать, что да как.
То что уже есть - в файлике. Количество и размер DATA, а также скорость выполнения уже наводит тоску. Заранее спасибо.
Shadow Maker
27.10.2012, 02:34
Да, мир перевернулся. Ну на всякий случай... Мало ли, вдруг не шутка?
Во=первых есть графические редакторы (Art Studio, Burial Gfx Editor). Во-вторых, есть INSERT (он же INCBIN) "имя_файла" - добавляет файл по нужному адресу. И в-третьих, есть LDIR чтобы из памяти перенести на экран типа:
ld hl,#c000
ld de,#4000
ld bc,#1b00
ldir
Рекомендую какую-нить книжку почитать по ассемблеру, например эту - http://vtrdos.ru/book/WGASM.ZIP
Тебе просто рисунок надо вывести?
Та-а-а-ак... Ребята, ну я понимаю, что кажусь шнурком/нубом/дилетантом (нужное подчеркнуть. Ну, первое, это не шутка. Второе - ваяется в 128 спектруме. Ассемблер планируется использовать GENS.
Вопрос в следующем. Как удобнее (или проще) создать Хм... набор однобайтных значений в озу. Т.е. через метку и оператор DEFB выводится ряд однобайтных значений символов на экран. Я бы хотел организовать загрузку однобайтных значений в память. Ведь общая картинка будет состоять из более чем 6000 байтов, а прописывать для каждого значения
LD A,NN
LD HL,#NNNN
LD (HL),A
будет несколько утомительно....
Я так понял, что толком не смог объяснить, что мне нужно... Ну ладно, мой косяк. Что касается книг по ассемблеру, читаю, не сомневайтесь. Но пока не нашел искомого, иначе бы не задал свой вопрос здесь.
P.S. Используется Унреал со 128 бейсиком. Когда пишу на ассемблере туда же загружается GENS3. К живому скорпиону доступа пока нет.
Написали же уже про LDIR - это этакий LD в цикле
LD HL, NNNN ; откуда
LD DE, #4000 ; куда
LD BC, 6912 ; сколько
LDIR ; копируем
NNNN:
DEFB #00
DEFB #00
DEFB #F5
...всего 6912 байт
---------- Post added at 12:16 ---------- Previous post was at 12:14 ----------
Используется Унреал со 128 бейсиком. Когда пишу на ассемблере туда же загружается GENS3.
если нет погони за аутентичностью, то лучше использовать какой-нибудь кроссассемблер, например, sjasmplus
null_device
27.10.2012, 10:21
Как удобнее (или проще) создать Хм... набор однобайтных значений в озу
Если изображение доложно быть динамичным, с повторяющимся "узором" можно использовать что-то вроде "шаблона-матрицы", которая будет строить изображение в памяти, а потом перебрасыватть его в "экран" (как это обычно и делают).
----
Опять же: если изображение предполагается статичным, логичнее сделать, как было предложено выше (нарисовать в графическом редакторе, а потом распаковать\перебросить LDIR'ом).
Спасибо, будем стараться )
Если очень нравится GENS, рискну порекомендовать GENS128 с RAM-диском:
http://wlodeks.narod.ru/zxnet/soft/soft.htm
Если очень нравится DEFB, рискну порекомендовать file2db для преобразования произвольного файла в строчки DB (заменить на DEFB можно потом в текстовом редакторе).
Ола-ла, пошло ))) Отдельное спасибо Eltaron за наставление на путь истинный. С меня пиво ))) Или пара печенюшек )
Shadow Maker
27.10.2012, 16:09
Книжку почитай, которую я дал, тогда точно шнурком не будешь выглядеть. Там базовые принципы хорошо расписаны как раз, и Генс в качестве ассемблера.
James DiGreze
01.11.2012, 10:10
Я б порекомендовал первую книгу из трехтомника по графике от Инфоркома. Называется "Элементарная графика". Для начинающего - самое оно, сам по ней осваивался в начале 90-х. Написано доступным языком со множеством примеров, все примеры хорошо откомментированы. Книга есть на vtrdos.ru в разделе Books. Формат DeJaVu.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot