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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 23

Тема: Азбука ассемблера

  1. #1
    Junior
    Регистрация
    23.10.2012
    Адрес
    г. Красноярск
    Сообщений
    18
    Благодарностей: 1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Азбука ассемблера

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

    А теперь у меня вопрос. Организовать последовательный выбор из DEFB не представляет сложности:
    ............ LD.... DE,IMG ; грузим в DE адрес начала блока
    ............ INC.. DE...... ; Следующий элемент блока
    ............ ....... .......... ; Код программы
    ............ RET.. ...........; Конец основного блока
    IMG....... DEFB #12,#FF; Блок однобайтных данных

    А как организовать последовательную выборку значений из DEFW? Увеличение DE в данном случае приводит лишь к увеличению первого загруженного значения (адреса), а не выбору следующего элемента блока. Как решить? Это пока единственный вопрос, который я никак не могу решить. В абсолютном большинстве учебников используется исключительно DEFB, а DEFW если и применяется, то крайне ограничено. К слову, учебник "Как написать игру на ассемблере", на мой взгляд, несколько.... э-э-э... однобокий, что ли. Обо всем по чуть-чуть и ни о чем достаточно.
    Самый яркий пример из опыта - определение пользовательских функций. Благо, в каком-то описании, все-таки, вычитал, что для возвращения из функции нужно указывать команду RET... Правда вспомнилось это только после двух дней экспериментов, но за эти два дня я на экране эмудятора такого насмотрелся - не дай бог....
    P.S. Прошу прощения за словоблудие, но процесс освоения ассемблера идет со скрипом и сопровождается горами исписанной бумаги ))) На ней просто удобно блок-схему программы рисовать... А потом добавляются забытые, или новые элементы, ну и т.д. )))
    Последний раз редактировалось Zidane; 02.11.2012 в 09:13.

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

  3. #2
    CraZZZy CodEr Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    1,553
    Благодарностей: 740
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Элемент DEFW занимает 2 байта - сначала младший, потом старший. Запись DEFW #FF00 эквивалентна записи DEFB #00,#FF. Значения надо вытаскивать уже в регистровые пары, т.к. разрядность 16 бит:
    Код:
    LD HL,TABLE
    LD E,(HL)
    INC HL
    LD D,(HL) ; в DE - значение #FF00
    INC HL ; HL передвинулся на второе слово (#AABB)
    ...
    RET
    TABLE: DEFW #FF00,#AABB,#C123
    Все любят гипножабу

  4. Этот пользователь поблагодарил SAM style за это полезное сообщение:
    Zidane (02.11.2012)

  5. #3
    Member
    Регистрация
    08.01.2012
    Адрес
    г.Винница, Украина
    Сообщений
    65
    Благодарностей: 6
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Почитай вот это.
    http://zxpress.ru/book.php?id=18
    Очень толково написано.

  6. Эти 2 пользователя(ей) поблагодарили predatoralpha за это полезное сообщение:
    SaNchez (02.11.2012), Zidane (02.11.2012)

  7. #4
    Master Аватар для SaNchez
    Регистрация
    22.12.2007
    Адрес
    г. Владивосток
    Сообщений
    796
    Благодарностей: 692
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от predatoralpha Посмотреть сообщение
    Почитай вот это.
    http://zxpress.ru/book.php?id=18
    Очень толково написано.
    Моя библия

  8. #5
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,426
    Благодарностей: 643
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    как организовать последовательную выборку значений из DEFW
    А вообще тру-способ что-то вроде такого:

    Код:
    LD (STK+1),SP
    LD SP,TABLE
    POP DE ; в DE - значение #FF00
    ...
    POP DE ; в DE - значение #AABB
    ...
    POP DE ; в DE - значение #C123
    ; и так далее
    ...
    STK:
    LD SP,0
    RET
    TABLE: DEFW #FF00,#AABB,#C123

    Только нужно либо запрещать при этом прерывания, либо следить чтоб они не пришли.
    Самое простое - в начале поставить DI

  9. #6
    Junior
    Регистрация
    23.10.2012
    Адрес
    г. Красноярск
    Сообщений
    18
    Благодарностей: 1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    А вообще тру-способ что-то вроде такого:
    Спасибо ) Пока что, самый понятный для меня ответ ) Что касается указанной книги, то там упоминание про DEFW есть... А если конкретно, то только упоминается, что в DEFW определяются двухбайтовые значения.... И на этом практически все. Последующее описание крутится вокруг DEFB и DEFM, оставляя DEFW "за бортом"... Лично для меня книга посредственна. Изучать её саму по себе довольно неудобно. Нужно обложиться как минимум 3 книгами. Собственно приведенная, элементарная графика (с выводом на экран работаем) и справочник команд ассемблера... И если в книжном варианте как-то терпимо такое проворачивать, то в электронном виде постоянно тыкать Alt+Tab.... Увольте...
    P.S. Все вышесказанное сугубо имхо.

  10. #7
    Master Аватар для SaNchez
    Регистрация
    22.12.2007
    Адрес
    г. Владивосток
    Сообщений
    796
    Благодарностей: 692
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    И если в книжном варианте как-то терпимо такое проворачивать, то в электронном виде постоянно тыкать Alt+Tab.... Увольте...
    P.S. Все вышесказанное сугубо имхо.
    Можно распечатать, она не такая большая

    http://vtrdos.ru/book/PROGRASM.ZIP

  11. #8
    Junior
    Регистрация
    23.10.2012
    Адрес
    г. Красноярск
    Сообщений
    18
    Благодарностей: 1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это у меня тоже есть. Почти вся была законспектирована... Так лучше усваивается.

  12. #9
    Master Аватар для nodeus
    Регистрация
    07.10.2007
    Адрес
    Perm, Russia
    Сообщений
    541
    Благодарностей: 443
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так ведь усваивается вообще, по идее, на конкретных задачах. Т.е. если есть задача, она решается и по ходу набирается опыт, а если задачи нет и изучение чисто академическое, то изучение идет дооолго и мууууторно.
    Спасибо и пока! – Hyperadio | nd on hype | zxboot.ru | zx demo на YouTube

  13. #10
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,426
    Благодарностей: 643
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    Последующее описание крутится вокруг DEFB и DEFM, оставляя DEFW "за бортом"...
    А откуда вообще такой упор на DEFW ?
    По сути это просто вид представления данных - в данном случае - машинное слово (DEFine Word).
    Те-же данные можно задать и байтами (DEFine Byte)
    Да хоть и DEFM.
    Компу пофик что ты там на DEFинил - это ведь инструкция для компилятора (в каком виде данные ложить), а процессор всё равно воспринимает всю кухню как толпы нулей и единиц...

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

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

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

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

Похожие темы

  1. Комманды ассемблера/коды i8080/КР580ВМ80А
    от sergey2b в разделе Разное
    Ответов: 4
    Последнее: 29.11.2015, 14:01
  2. Ответов: 10
    Последнее: 06.03.2015, 12:59
  3. (Обмен) У. МОРЕР. Язык ассемблера для ПК ЭПЛ
    от shapipovo в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 30.08.2011, 20:06
  4. Ответов: 12
    Последнее: 24.06.2009, 10:33
  5. Ответов: 6
    Последнее: 11.02.2008, 23:19

Ваши права

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