Важная информация

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 34

Тема: Изучаем Ассемблер с ААА!

  1. #1
    Banned
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Благодарностей: 278
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Arrow Изучаем Ассемблер с ААА!

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

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

    Конечно, можно сразу обратить ААА к прочтению наиболее подходящей книги
    - "Программирование в машинных кодах и на языке Ассемблера".
    Однако представьте, что вы пришли в школу и вам дали букварь и сказали: "придете в конце четверти писать контрольную работу"...
    Понятно такой подход не годится, кто так может, тот уже давно сам всему научился, здесь нужно помочь.
    Я вижу этот процесс так:
    1. ААА читает вышеприведенную книгу и при возникновении затыка, пишет сюда, тут ему все разъясняют.
    2. ААА приходят всякие бредовые мысли по теме Ассемблера, он их пишет сюда, ему разъясняют.
    3. и т.п.
    Последний раз редактировалось Addison; 28.06.2009 в 20:27.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,455
    Благодарностей: 3169
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Клон Посмотреть сообщение
    TEXT3 DEFB "ADAPTED TO DISK BY J.TRUNIN"
    TEXT31 DEFB "MOSCOW 2009"
    а ты что уже московскую прописку получил - ЧеловекМосковскойОбласти ?
    или может ААА помог с регистрацией

  4. #3
    Master Аватар для [bETA]mEN
    Регистрация
    16.01.2005
    Адрес
    Moscow
    Сообщений
    668
    Благодарностей: 113
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Клон Посмотреть сообщение
    DOS MESSEAGE OFF
    „Орфографические ошибки в письме — как клоп на белой блузке“
    — Фаина Раневская
    IT FOUND A VOICE... NOW IT NEEDS A BODY

  5. #4
    Guru Аватар для AAA
    Регистрация
    06.04.2005
    Адрес
    Земля, Москва, Марьино
    Сообщений
    21,508
    Благодарностей: 5883
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Question

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

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

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

    http://zx.pk.ru/attachment.php?attac...4&d=1223485957

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


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

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

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

  6. #5
    Banned
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Благодарностей: 278
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alexeenko Посмотреть сообщение
    Мне много знать не надо, мне нада дописать эту программу:
    Ну ты прям, как начальник, выдаешь задание.

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


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

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


    Цитата Сообщение от alexeenko Посмотреть сообщение
    Значит ЗАСМ на диске есть
    Он не нужен.
    Писать надо на встроенном АСМ в эмуляторе, рекомендую 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 ----------

    Цитата Сообщение от alexeenko Посмотреть сообщение
    Как эта называется, может я ее книжкой читать буду, чтобы не мучаться с пдф ?
    Так и называется, как было написано. Обложка нежно_голубовато_зеленого цвета.
    Последний раз редактировалось Addison; 01.07.2009 в 19:51.

  7. #6
    Guru Аватар для AAA
    Регистрация
    06.04.2005
    Адрес
    Земля, Москва, Марьино
    Сообщений
    21,508
    Благодарностей: 5883
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

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

    Цитата Сообщение от Клон Посмотреть сообщение
    Так и называется, как было написано. Обложка нежно_голубовато_зеленого цвета.
    Все что связанно с ассемблером голубого цвета, я правильно указал ?



    ---------- 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 похвалил, сказал, что так даже Ивамото бы не заглючил:


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

    Сама дема вот: Вот

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

  8. #7
    Banned
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Благодарностей: 278
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alexeenko Посмотреть сообщение
    Все что связанно с ассемблером голубого цвета, я правильно указал ?
    ААА, ну ты чего совсем шоль? Конечно книга та, на которой ты вопрос поставил.
    Я же тебе название дал, оно полностью срастается, да и по предисловию сравнить можно то, что в пдф и то, что в книге.

    Цитата Сообщение от alexeenko Посмотреть сообщение
    Доделый пожалуйста с пояснительными надписями
    Мне надо вначале доделать Advanced Soccer Simulator.

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

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

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

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

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

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

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

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

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

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

  9. #8
    Guru
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,083
    Благодарностей: 924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

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

  10. #9
    Banned
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Благодарностей: 278
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alexeenko Посмотреть сообщение
    А какие там все кнопки ?

    как грузить ?
    как сохранить ?
    как ассемблировать ?
    как запустить ?
    как еще чего нить ?
    Запускаешь эмулятор 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 ----------

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

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

  11. #10
    Banned
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Благодарностей: 278
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

Страница 1 из 4 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. SjASMPlus Z80 кросс ассемблер
    от Aprisobal в разделе Программирование
    Ответов: 1445
    Последнее: 31.10.2017, 10:51
  2. Какой ассемблер Вы используете?
    от Dut_Norshi в разделе Софт
    Ответов: 75
    Последнее: 22.10.2014, 10:33
  3. ZX ассемблер (и не только?) с библиотеками
    от shade в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2005, 19:43

Ваши права

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