PDA

Просмотр полной версии : Изучаем Ассемблер с ААА!



Addison
28.06.2009, 22:24
Тема посвящена изучению языка Ассемблер. Очень много спектрумистов мечтает писать на Ассемблере, но их постоянно что-то останавливает. Например, одним из таких спектрумистов является ААА.

Я, решил помочь нашему ААА, а вмести с ним и другим спектрумистам, которые хотят освоить Ассемблер. Всем знатокам предлагаю поучаствовать в этом и оказать посильную помощь.

Конечно, можно сразу обратить ААА к прочтению наиболее подходящей книги
- "Программирование в машинных кодах и на языке Ассемблера (http://trd.speccy.cz/book/PROGRASM.ZIP)".
Однако представьте, что вы пришли в школу и вам дали букварь и сказали: "придете в конце четверти писать контрольную работу"...
Понятно такой подход не годится, кто так может, тот уже давно сам всему научился, здесь нужно помочь.
Я вижу этот процесс так:
1. ААА читает вышеприведенную книгу и при возникновении затыка, пишет сюда, тут ему все разъясняют.
2. ААА приходят всякие бредовые мысли по теме Ассемблера, он их пишет сюда, ему разъясняют.
3. и т.п.

goodboy
29.06.2009, 00:35
TEXT3 DEFB "ADAPTED TO DISK BY J.TRUNIN"
TEXT31 DEFB "MOSCOW 2009"

а ты что уже московскую прописку получил - ЧеловекМосковскойОбласти ?
или может ААА помог с регистрацией

[bETA]mEN
29.06.2009, 00:47
DOS MESSEAGE OFF
„Орфографические ошибки в письме — как клоп на белой блузке“
— Фаина Раневская

AAA
29.06.2009, 01:19
Хорошо я постараюсь ознакомиться с изданием, но попозже. Во первых щас я занят кое чем спектрумовским, а во вторых вот именно сегодня у меня наш форум не работает, вернее работает, но как будто на модеме. Почему я не знаю.

Книжку прочту в туалете. У меня есть все книжки по ассемблеру. Как эта называется, может я ее книжкой читать буду, чтобы не мучаться с пдф ?

Мне много знать не надо, мне нада дописать эту программу:

http://zx.pk.ru/attachment.php?attachmentid=9224&d=1223485957

AAA - это файл демы
остальное там понятно
Значит ЗАСМ на диске есть и еще в последней строчке кода на дб надо опять поменять, это я думал что из за этой комманды и переправлял ее обратно.


Не помню в чем у меня там загвоздка, но мне нада написать суппер демку:

картинка черный бордер музон, скролл и чтоб по русски писать, эквалайзер. Болванка готовая приветствуется, чтоб мне токо менять расположение эффектов и текст в скроллах .Я буду делать тода олд скулл демо 1,2,3,4,5
А то на сайт ложить нечего.

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

Addison
29.06.2009, 18:03
Мне много знать не надо, мне нада дописать эту программу:
Ну ты прям, как начальник, выдаешь задание.

Ты сам хочешь написать или хочешь, чтобы я доделал?



картинка черный бордер музон, скролл и чтоб по русски писать, эквалайзер. Болванка готовая приветствуется, чтоб мне токо менять расположение эффектов и текст в скроллах .Я буду делать тода олд скулл демо 1,2,3,4,5
А то на сайт ложить нечего.


Я думаю надо на чем-то мелком потренироваться.
Сначала надо сделать все по отдельности: бегущий текс, анимацию (эквалайзер), проигрывание музыки, а уже потом все это объединить.
Таким образом, все разделится на 4-ре задачи.



Значит ЗАСМ на диске есть
Он не нужен.
Писать надо на встроенном АСМ в эмуляторе, рекомендую SPIN.
Там очень удобный интерфейс, плюс можешь отладить программу пошагово.
Все ресурсы проца на ладони.

---------- Post added at 17:46 ---------- Previous post was at 17:39 ----------

alexeenko, Методика изучения:

1. Cистема исчисления, для начала двоичная и шестнадцатеричная.
2. Архитектура процессора.
3. Архитектура ZX-Spectrum.
4. Система команд Z80.
5. Разбор простых примеров.
6. Разбор более сложных примеров.

Все этом можно пройти за одну ночь по книге, которую я тебе выше приводил.
После этого можно приступать к написанию демки.
Но я скорее стал бы разбирать чужие и видоизменять, а потом бы уже написал свой ответ Чемберлену…

---------- Post added at 18:03 ---------- Previous post was at 17:46 ----------


Как эта называется, может я ее книжкой читать буду, чтобы не мучаться с пдф ?
Так и называется, как было написано. Обложка нежно_голубовато_зеленого цвета.

AAA
29.06.2009, 18:39
Ты сам хочешь написать или хочешь, чтобы я доделал?

Доделый пожалуйста с пояснительными надписями, что и чем двигать. А я на примере изучу. Вот прям щас я делаю демку, поэтому немного занят, но с удовольствием найду время и изучу выложенный тобой тут код. Там уже в фаел все написано основное. Не хватает только скролла, подгрузки фонта в него и простенького эквалайзера. И что то там глючило в музоне или инициализации.

Я пишу в тасме, т.к., там кнопки написаны и понятно что жать. Если ты выложишь в чем то другом, то мне нужны поэтапно кнопки:

как грузить
как ассемблировать
как запускать
как сохранять

Ну и еще основные каки енить нужные.

---------- Post added at 18:29 ---------- Previous post was at 18:24 ----------


Так и называется, как было написано. Обложка нежно_голубовато_зеленого цвета.

Все что связанно с ассемблером голубого цвета, я правильно указал ?

http://pic.ipicture.ru/uploads/090629/TzVJ67VzSu.jpg

---------- Post added at 18:30 ---------- Previous post was at 18:29 ----------


Он не нужен.
Писать надо на встроенном АСМ в эмуляторе, рекомендую SPIN.
Там очень удобный интерфейс, плюс можешь отладить программу пошагово.
Все ресурсы проца на ладони.

А какие там все кнопки ?

как грузить ?
как сохранить ?
как ассемблировать ?
как запустить ?
как еще чего нить ?

Иностранными языками не владею.

---------- Post added at 18:39 ---------- Previous post was at 18:30 ----------


Я думаю надо на чем-то мелком потренироваться.
Сначала надо сделать все по отдельности: бегущий текс, анимацию (эквалайзер), проигрывание музыки, а уже потом все это объединить.
Таким образом, все разделится на 4-ре задачи.

В выложенном мной коде уже есть база. Туда нада вписать скролл, эквалайзер. Все это запустить, а потома я буду тренироваться. Технологию я еще помню именно так я все и писал. Мне кса написал центральный код, рассказал как загружать и как запускать. Все дальнейшие процедуры он мне присылал со стартовыми адресами и я их спокойно подсоединял.

В дебри я лезть не хочу, так как слышал от умных людей, что для написания интересных эффектов на ассемблере надо знать математику. Я учил ее до 3 го класса, потом забил. Поэтому умножаю даже на калькуляторе. Тоесть что то самому расчитать я не смогу. Но по шаблону сделать смогу. например вверх моего коддинга. это изминение таблички бегущей строки:
Комамманда Дебил 255,1,255,1 и.т.п.

Во как вспомнил !

Еще я мог что нить заглючить, например редактор Ворд для спектрума и сделать из него дему с кучей скроллов. Меня даже AIG похвалил, сказал, что так даже Ивамото бы не заглючил:
http://zxaaa.untergrund.net/screen3/hardcore4.png

На картинке видно, как весь экран в скроллах, посредине летает скролл по табличке, снизу эквалайзер, а еще там играет музка, и если что нить нажать, появляется картинка с надписью харкоре. Так что я хакер еще тот.

Сама дема вот: Вот (http://zxaaa.untergrund.net/get.php?f=DEMO/hardcore.zip)

Это Аиг мне по модему прислал какой то эффект и забыл убрать свою наработку ворда для спектрума и я сразу же сделал дему. Он даже меня не ругал в тот раз.

Addison
29.06.2009, 20:09
Все что связанно с ассемблером голубого цвета, я правильно указал ?
ААА, ну ты чего совсем шоль? Конечно книга та, на которой ты вопрос поставил.
Я же тебе название дал, оно полностью срастается, да и по предисловию сравнить можно то, что в пдф и то, что в книге.


Доделый пожалуйста с пояснительными надписями
Мне надо вначале доделать Advanced Soccer Simulator.


И что то там глючило в музоне или инициализации.
В музоне я не шарю, мне придется это с нуля изучать. Чтобы просто запустить готовый музыкальный код, думаю, дня хватит для разборок. Но мне не хотелось бы этим заниматься.

Ты сразу хочешь что-то крутое писать. Надо с простого.
Я взялся помочь тебе изучить ассемблер, а не писать дему.

Вот, к примеру, ты можешь написать простенькую прогу, где квадратик 8 на 8 пикселов перемещается по экрану слева направо?
Если нет, то и что тогда за музоны и скролы браться?
Если ты сделаешь, что перечислено в пунктах выше ты научишься читать код, а далее все зависит от опыта и наработок. Сразу лучше самому не писать, а крошить чужой код. Ведь можно взять чужую демку выдернуть от туда эквалайзер, заменить у него графику, а движок оставить, вот тебе уже будет свой эквалайзер, попутно разберешься, как он работает. А там глядишь и свой придумаешь.

Я, ААА, тоже не гений, пишу все с листа, опыта нет, так чтобы тебе настряпать сходу все твои фантазии, но если поставиться целью все смогу. По крайней мере, свои идеи при адаптации все воплощал, и все работало.
Ну лучше с чего-то простого.

Например, выдернуть движок спрайтов от куда-то, подставить туда другой спрайт, третий... Так у тебя появится подпрограмма движения, далее ее доработать или оставить, если она тебя удовлетворяет.

Ты на амбразуру грудью кидаешься, с АСМом такое не пройдет это не бейсик, на котором сел и сразу все написал, подглядывая в книжку.

---------- Post added at 20:09 ---------- Previous post was at 18:47 ----------

alexeenko, могу тебе по своему опыту посоветовать.
Когда я брался адаптировать игру Elite к отгрузке на диск в маш коде, я мог читать машинный код и имел небольшой практикум. Мог печатать символы при помощи подпрограммы ПЗУ, опрашивать клавиатуру, перемещать экраны, двигать спрайты. Это достаточно скудный опыт, но все же... К диску, даже к ТР-ДОС, я ни разу не адаптировал меню отгрузок, что там говорить о +3Дос. Я пытался в детстве, но мне не хватало литературы.

Вот с этим багажом из детства я начал адаптировать. Ну кроме этого, был опыт просмотра кода, и походу поднаторел в пошаговой отладке/просмотре в дебагере эмулятора.
Короче, обратившись к литературе по +3ДОС, я быстро понял, что полной информации, как загрузить и сохранить файл в маш коде нет в фирменном руководстве. Есть только описание точек входа в ПЗУ +3ДОС, а по какому алгоритму их вызывать, что за чем не указано. Поэтому я взломал уже адаптированную иностранцами игру, добрался до подпрограммы отгрузок и просмотрел код при помощи встроенного дизассемблера эмулятора. Добраться до подпрограммы - это тоже целое искусство умелого расставления точек прерывания... Но с этим у меня как-то быстро с листа пошло, тут помогал опыт общего программирования и отладки программ на других языках. далее я списал эти подпрограммы, понял, что для чего вызывается, установил, что сначала включают мотор, потом открывают дос, затем пишут или читают, затем закрывают дос, и выключают мотор. Получив эту информацию, фирменное описание стало прозрачно и понятно читаться. Этого алгоритма там не хватало или я просто его там в английских буковках не усмотрел...
Далее я не полез сразу в игру, а попробовал просто абстрактно написать программу сохранения и записи в файл произвольной области памяти. Помучавшись вечер, я смог это сделать. Дальше уже полез в игру. Разложил ее по полочкам, нашел меню отгрузок, нашел резервы оперативной памяти, все сделал, но потом уткнулся в проблему переключения банков памяти и пзу, так как для +3ДОС необходимо их определенным образом включить, кроме того нужно было использовать свободный банк для размещения своей подпрограммы. Тоже возился долго, пока все осознал. Потом уткнулся в проблему, что переключиться на другой банк не могу, так как свободное место в игре именно там где банк переключают, и из этого вывернулся, а уж только потом написал процедуру расставил все, плюс кое что подредактировал в коде (я писал это в треде про адаптацию). потом муторно отлаживал, искал баги.

Вторую игру было проще адаптировать, так как многие неразрешимые для разума вопросы уже были сняты ранее. Поэтому, ААА, не бойся потратить месяц на изучения АСМа, потом будешь шлепать демы на ура, это как снежный ком, опыт накапливается!

psb
29.06.2009, 20:50
а я опять не соглашусь.
я категорически советую ААА взять самую ЛЕВУЮ книгу, в ней именно то, что нужно, наглядно и понятно.
конкретно: там есть функция скролла ОКНА (в разные стороны). если сделать окно 32х1 и двигать его влево - получится скролл. надо только когда освобождается место в правом знакоместе печатать туда новую букву.

когда оно заработает - будет понятен принцип, а так я вполне допускаю, что нифига не понятно как работает скролл:)

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

---------- Post added at 22:50 ---------- Previous post was at 22:43 ----------


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

Addison
29.06.2009, 21:01
А какие там все кнопки ?

как грузить ?
как сохранить ?
как ассемблировать ?
как запустить ?
как еще чего нить ?

Запускаешь эмулятор Spin,
дальше меню Tools, опция Assembler.
Все просто, как божий день, догадаться может даже АААшечка с АААшечком.
Нажимаешь, грузится редактор, в нем, как ты понимаешь, набирается листинг!
Я тоже там всех кнопок не знаю, но по делу там и так все ясно, если ты когда-то хоть где-то набирал листинг программы на ассемблере.

Слева оставляй 10 пробелов для имен ссылок (переходов), команды пиши одна под одной, 4-ре символа на мнемонику, так как длиннее не бывает, потом пробел и далее операнды. "$" значок для обозначения шестнадцатеричной системы исчисления, десятичная по умолчанию. ";" - значок для комментариев. Их писать обязательно и чем больше, тем луче, иначе через неделю не сможешь сам свою программу прочесть, забывается все очень быстро, особенно, если программа больше 1 кб получается.

Дальше ассемблируешь.
Меню File, опция Assembler, как видишь все просто сделано для даунов.
Появится окно. В ней настройка озу, там написано MAIN - это означает, что ассемблироваться будет в стандартную конфигурацию банков ОЗУ. Если ты хочешь попасть в конкретный банк, это иногда надо, когда в основных уже загружена программа, то тогда его там нужно выбрать.
Далее жмешь хоккей! И если ты предусмотрительно в своей программе поставил директиву ORG NNNN, то твоя программа будет транслирована начиная с этого адреса в ОЗУ. Следи за сообщениями ассемблера, он внизу после завершения трансляции в окне редактора напишет, если ошибки и сколько байт ассемблировано. Если есть ошибки, то тебе укажу первую строчку, где она возникла. Устранив ошибки, сохраняй листинг, закрывай ассемблер и дуй в эмулятор, только не жми там ресет, так как в озу твоя программа. Заходи в бейсик, вызывай свой код на исполнения и пляши от радости, если он работает, если нет, лезь в петлю, а лучше возвращайся к листингу и думай, думай, где накосячил! Могу дать еще один совет.
Перед вызовом кода, иди в меню tools, опция debugger, запускай, откроется окно - оно просто клад. Справа в верху весь проц на ладони, слева память либо в режиме ассемблера либо просто кода, внизу справа стек. Прокручивай до своего адреса NNNN, куда программу ассемблировал, ты ее там увидишь, должен узнать, на начале или на первой строчке, если начало с ней совпадает, тыкай два раза мышкой, появится красная точка около адреса, это ты поставил прерывание. Далее закрывай дебагер, запускай код, прога стартует, но остановится и появится окно дебагера, в этом режиме кнопками наверху ты можешь пошагово отладить программу. Ты будешь видеть все результаты в регистрах, на стеке, пользуясь макрошагом, можешь вызвать на исполнение целые подпрограммы, если они что-то делают со звуком или экраном это будет в окне эмулятора и в динамике воспроизводится, так ты будешь понимать, что делает та или иная процедура или как она работает, правильно/неправильно.
Таким образом, можешь отладить свою программу и разобраться с чужой.

Если все заработает, я думаю, учить тебя как сохранить блок память на диск в бейсике тебя не надо?

Если честно, то я не понимаю зачем в соседней ветке народ себе бошку разбивает, на тему трансляции листинга в код, какими-то изощренными способами. И также не понимаю зачем использовать убогие ассемблеры ZX, когда есть такое мощное средство. Надо и в хвост и в гриву заставлять PC работать на Спектрум, а не тратить драгоценное время на написание на реале! это конечно круто, но время дороже, на реале лучше играть и смотреть демы!

---------- Post added at 21:01 ---------- Previous post was at 20:56 ----------


а ты... архитектуру спека, систему команд... я прекрасно помню, что когда-то я это знал, но абсолютно не умел применять.
Ну, ты же знал! А если бы не знал у тебя бы не получилось.
То, что ты писать не мог, то это потому, что опыта не было, надо было сделать первый шаг, втянуться.
А так он полезет, появится куча вопросов, мозг закипит и он бросит...
Теория всегда идет раньше практики. Сначала надо понять, что за чем, а потом делать. Даже если ты не все усвоишь, все равно по ходу все будет проясняться.

Как чел будет писать на асме, если он не знает регистров. для чего они и сколько их и как их использовать? да он потухнет на первой строчке, как и было с ААА.

Addison
29.06.2009, 22:12
В дебри я лезть не хочу, так как слышал от умных людей, что для написания интересных эффектов на ассемблере надо знать математику. Я учил ее до 3 го класса, потом забил. Поэтому умножаю даже на калькуляторе.
Ну и прекрасно. У тех же умных людей спросишь формулу, по которой преоборазуются координаты или подсмотришь ее в книжке, а калькулятор в ассемблере мы тебе найдем :v2_laugh:. Тоже мне проблема...

snb
30.06.2009, 11:15
Ма-ма-а-а-а-а!!! Я люблю ААА!!!

psb
30.06.2009, 11:26
Ну, ты же знал! А если бы не знал у тебя бы не получилось.
То, что ты писать не мог, то это потому, что опыта не было, надо было сделать первый шаг, втянуться.
да, знал, писал при этом всякие хреновинки даже, они работали. но как выводить спрайт, как делать скролл - ваще не понимал. я не понимал принцип их работы! а вот когда набрал примеры, стал делать с ними эксперименты - тогда и стало все ясно, даже тоже делал мегадему:) жалко, что её ни у кого не осталось... но факт в том, что не обязательно хорошо шарить в асме, чтоб писать простые демки.

кстати! еще до того как я понял, я уже довольно легко тырил всякие эффекты из чужих прог:) не вдаваясь в то, как они работают;) так что к чертям теорию, больше практики!

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

Aprisobal
30.06.2009, 13:25
так что к чертям теорию, больше практики! +1000. Чтобы изучить АСМ начал писать игру. Как писал? Искал по спековским журналам статьи и добавлял интересный код себе (понимания системы: CALL - "вызов", и RET - "выход" было достаточно). Например сделал вывод меню. Далее по меню был вызов главной подпрограммы игрового процесса, куда вставил вылетающие буквы и очистку экрана... Далее нашел и скопировал процедуру вывода спрайтов, хоть я ее совершенно не понимал. Разобрался как хранят спрайты и пошло-поехало! ;)

snb
30.06.2009, 15:20
Ребята, а кто знает все директивы ассемблера в ZXSpin? У меня такая проблема: мне надо задать последовательность из n байт (1, 1, 1, 2, etc...), а я не знаю как это сделать. Потому как набивать

db 1
db 1
db 1
db 2
etc...

очень "муторно". Буду благодарен за все директивы, какие знаете. Вроде неплохой редактор исходного кода, с подсветкой синтаксиса и при ошибке курсор встаёт на строку с оной. А такие мелочи, как отсутствие help'а, расстраивают.

Aprisobal
30.06.2009, 15:48
Скорее всего:
db 1,1,1,2,2,2,...
или
ds 1,100

Если так "запали" на встроенные в эмуляторы ассемблеры, то советую посмотреть на реализацию оного в EmuZWin.

Addison
30.06.2009, 17:26
очень "муторно". Буду благодарен за все директивы, какие знаете. Вроде неплохой редактор исходного кода, с подсветкой синтаксиса и при ошибке курсор встаёт на строку с оной. А такие мелочи, как отсутствие help'а, расстраивают.
Да все там просто как божий день!
Директивы там совершенно обычные, как и в любом ассемблере.
Я в детстве пользовался Zeus'ом, когда начал писать в редакторе эмулятора Spin, попробовал использовать по памяти, все прокатило в легкую... Эти директивы описаны в книге "программирование в машинных кодах и на языке ассемблера".

Ссылка на книгу вверху, страница 163.

snb
30.06.2009, 17:33
Я не то что "запал", а просто мне с текстом удобнее в винде работать - copy/cut/paste, выделение мышью и прочие радости. А компилить хочу сразу в бинарник, при этом если возникнет ошибка, то я хочу знать где и какая. Может ещё какое средство посоветуете? Буду весьма признателен ("z80 pc assembler" и вот эту (http://zx.pk.ru/showpost.php?p=205194&postcount=1) связку не предлагать) .

Addison
30.06.2009, 17:39
с тем же успехом можно писать эту формулу на бейсике. ибо только профессиональный кодинг позволит сделать быструю математику.
Произвести математические операции, в частности, рассчитать тригонометрические функции можно, используя калькулятор ПЗУ, который и вправду один и тот же, как и в бейсике. Только вот пользоваться этим калькулятором можно по-разному. Не забывай, тормоза в бейсике при движении графики, главным образом, связаны с медленными циклами, а не с медленным вычислением встроенного калькулятора. Используя ассемблер, ты можешь сделать быстрые циклы, что и определит качество (плавность) движения спрайта или преобразование геометрической фигуры.

Я сомневаюсь, что какой-то там нереальный кодер сможет написать программы вычислений всяких функций намного оптимальнее, чем они написаны в калькуляторе ПЗУ. Большого прироста производительности он не получит. Другой разговор, что может быть можно обойтись иными методами, например, известны простые операции умножения на два путем сдвига битов в регистре и т.п.. Но сложные тригонометрические функции, ты вряд ли сможешь сделать лучше.

snb
30.06.2009, 17:42
В продолжение предыдущего поста: а как зарезервировать n байт, заполненых значением #NN? Не нашёл я в книжке такой директивы :)

Addison
30.06.2009, 17:53
да, знал, писал при этом всякие хреновинки даже, они работали. но как выводить спрайт, как делать скролл - ваще не понимал.
Повторю, у тебя просто не было опыта. Если бы ты не знал архитектуру процессора, его регистры, их назначение, некоторые стандартные приемы, организацию памяти Спектрума, двоичную и шестнадцатеричную систему исчисления, то вряд ли у тебя что-то вышло.
Никаких скролов ты бы не получил. Необходимый минимум для начала работы - это 1 раздел книги, которую я приводил. После прочтения этого раздела можно вполне приступать к написанию программы.

---------- Post added at 17:53 ---------- Previous post was at 17:45 ----------


Не нашёл я в книжке такой директивы
Очень плохо, это, наверное, все из-за пренебрежительного отношения к теории.
Страница 163.

Вот пример.

ORG 30000

DEFB FF$, FF$
DEWB 0000
DEFB "123" ; это текст

Результат

30000 FF$
30001 FF$
30002 00$
30003 00$
30004 31$
30005 32$
30006 33$


При правильном написании директивы, она подсветится синим цветом.

Vitamin
30.06.2009, 18:16
а как зарезервировать n байт, заполненых значением #NN? Не нашёл я в книжке такой директивы

В современных асмах:
ds n,#NN

В старых (директивы повтора у каждого асма свои):
dup n
db #NN
edup

psb
30.06.2009, 18:24
Но сложные тригонометрические функции, ты вряд ли сможешь сделать лучше.
Клон, ты один большой ЛОЛ:)))
вот ты напиши ХОТЯ БЫ ОДНУ ДЕМУ, тогда до тебя дойдет. ни в одной приличной деме не используется встроенный калькулятор, это не реально. поверь на слово, если лень проверить. все это проходили уже в лохматых 90х, а ты сказки тут рассказываешь:)

вот я делал пару интр в 512 байт. в этих байтах кроме музыки были синусы и косинусы. если правильно помню, то 128 точек рассчитывалось за один инт в реалтайме (преобр. полярных координат в обычные). можешь прикинуть и скорость (заодно проверь, как там шустрит встроенный калькулятор) и размер. а потом поговорим о "сделать лучше".

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

После прочтения этого раздела можно вполне приступать к написанию программы.
после прочтения кому? инженеру? охотно верю. теперь, когда мы инженеры - нам легко брать, изучать новое и погнал использовать. а если у человека не инженерный склад ума, не надо думать, что ему будет все так же просто.

Addison
30.06.2009, 18:37
после прочтения кому? инженеру? охотно верю. теперь, когда мы инженеры - нам легко брать, изучать новое и погнал использовать. а если у человека не инженерный склад ума, не надо думать, что ему будет все так же просто.
Народ утверждает, что вообще читать не нужно, можно сразу сесть и писать.
Я лично считаю, что читать придется даже при изучении бейсика. Весь вопрос в объеме и усвояемости информации. Со сложностью я не спорил, ассемблер сложный язык, поэтому и появились всякие бейсики, паскали и т.п.



тогда до тебя дойдет. ни в одной приличной деме не используется встроенный калькулятор, это не реально. поверь на слово, если лень проверить. все это проходили уже в лохматых 90х, а ты сказки тут рассказываешь
Возможно... Я особо не писал графику, я занимался мелкоприкладными задачками. Но для начала можно было бы и попробовать встроенный калькулятор, а уж потом лезть в дебри и писать свои функции. Для этого надо самому убедится, что расчет будет тормозить.

---------- Post added at 18:37 ---------- Previous post was at 18:34 ----------


повтора у каждого асма свои
А может их и нет? И вообще зачем они? 5-10 байт можно и в ручную ввести, а 1000 байт тупо вводить даже с авто заполнением, так как это будет раздувать объем файла, в этом случае проще и лучше писать цикл, который заполнит область памяти нужными байтами.

snb
30.06.2009, 18:39
Vitamin, спасибо, познавательно. Но вот я и говорю, беда в том, что для ассемблера в SPIN'е нет help'а :(

Addison
30.06.2009, 18:52
Но вот я и говорю, беда в том, что для ассемблера в SPIN'е нет help'а
Его нет, но сам ассемблер ничем не отличается от других, там все понятно.
Это примерно также, как требовать инструкцию к автомобилю, где какая педаль, как крутить руль и как переключать передачи...

---------- Post added at 18:52 ---------- Previous post was at 18:48 ----------


ААА сделать дему, он именно это и просил. а не разобраться как работает компьютер.
Не знаю чего он просил, мы с ним договаривались об изучении ассемблера, а не о написании демы.
Пускай приводит конкретные вопросы, примеры, свой листинг.
А не так, что вот вам какие-то разрозненные куски, соберите их и сделайте мне демку... при таком подходе это я чему-то научусь, а не ААА.

Sabrewulf
30.06.2009, 18:57
Возможно... Я особо не писал графику, я занимался мелкоприкладными задачками. Но для начала можно было бы и попробовать встроенный калькулятор, а уж потом лезть в дебри и писать свои функции. Для этого надо самому убедится, что расчет будет тормозить.
Так чего ж Вы, уважаемый Клонушка, не убедившись рассказываете нам о том какой встроенный калькулятор хороший, и про то, что нереально написать намного лучше?

Addison
30.06.2009, 19:23
Sabrewulf, в любом случае никакой сложной математики там нет.
а если с математиматекой не дружишь, то и нефиг вообще браться что-то писать даже на бейсике.

Я уже ответил, что если бы стал писать, то для начала воспользовался бы встроенным калькулятором. Это, как минимум, логично и разумно.

snb
01.07.2009, 12:58
2 Клон
"- Злой ты, Доцент, как собака."


Почти рзобрался с мнемониками встроенного в ZXSPIN ассемблера:

1 db (DEFB) n1, n2, n3, ... - Define Byte(s) - последовательность из одного или нескольких байтов

db 1, 2, $45, $EF
...

2 dw (DEFW) nnnn1, nnnn2, ... - Define Word(s) - последовательность из одного или нескольких слов

dw 32776, $5D3A
...

3 ds (DEFS) n, m - Define Sequence(?) - последовательность из n байт, заполненных значением m (по умолчанию #FF), поддерживается математика

ds 768, $3E
ds $300*4, 243
...

4 dd - вот с этим не могу разобраться. Понял только, что в качестве параметров должны содержаться "opcode and operands". Приму помощь с благодарностью!

Spectre
05.07.2009, 16:28
IMHO, не стоит так уж сразу на новичка набрасываться со списком книжек обязательных для прочтения... Я знаю пару человек учивших асм по инструкции к компьютеру Байт (там была обычная табличка с инструкциями, кодами и тактами), что лично мне совершенно не подходило, поскольку я не понимал как связать эту табличку с реальными программами. Много где хвалимая книга "Как написать игру на ассемблере" на мой взгляд приносит больше вреда чем пользы, поскольку она запрещает думать самостоятельно и делать любые шаги в сторону. Эта книга больше похожа на инструкцию к конструктору (который прилагается), пользуясь которой вы в конце получите игру. Лично я жалею, что потратил на нее все лето, честно читая эту книжку каждый день и пытаясь вникнуть в примеры.

Мое IMHO - к каждому человеку нужен индивидуальный подход, то есть надо давить в себе желание давать советы "делай как я". Если у AAA есть желание и терпение (это самое главное), то все получится. Попробуем подобрать подход. :)

GM BIT
05.07.2009, 19:40
А где вообще ААА, ему это нужно?

Addison
05.07.2009, 19:53
А где вообще ААА, ему это нужно?

Похоже нет, он хочет, чтобы за него дописали дему, а изучать асм ему похоже просто лень. Это ведь надо мозги напрягать, в дебри лезть...

psb
05.07.2009, 20:01
Много где хвалимая книга "Как написать игру на ассемблере" на мой взгляд приносит больше вреда чем пользы, поскольку она запрещает думать самостоятельно и делать любые шаги в сторону.
здрасте... там в книге было крупным текстом написано, что НИ В КОЕМ СЛУЧАЕ НЕ ЭКСПЕРИМЕНТИРУЙТЕ??? в книге было много работающих, полезных в т.ч. для демок ГОТОВЫХ подпрограммок. набирай, запускай - работает. а вот дальше бери и подтачивай под себя, экспериментируй, поменял то, поменял сё... помню даже у некоторых эффекты для дем получались случайно, из-за ошибки в проге.

---------- Post added at 22:01 ---------- Previous post was at 22:00 ----------


Это ведь надо мозги напрягать, в дебри лезть...
его подход оправдан.

Addison
08.07.2009, 00:41
его подход оправдан
конечно, авось кто возмется доделать демку.

AAA
08.07.2009, 00:52
конечно, авось кто возмется доделать демку.

Ту хреноватую демку и я сам бы даделыл. Там и тыком можно доделать. Однако зачем овно делать, если есть идеи покруче. Клон я работаю над собой, пока вспоминаю, что такое арт студиа.