User Tag List

Показано с 1 по 10 из 1664

Тема: SjASMPlus Z80 кросс ассемблер

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Spectre
    Менять IF/IFN.
    понял...
    Цитата Сообщение от Spectre
    Операции:
    a+b
    a-b
    a*b
    a/b
    a&b - AND
    a|b - OR
    a!b - XOR
    a>b - циклический сдвиг слова a на b бит вправо
    a<b - циклический сдвиг слова a на b бит влево
    () - скобки (сначала рассчитываются они)
    {a} - слово, находящееся в памяти по адресу a
    a~ - инвертирование текущего результата
    ?метка - возвращает 0, если метка уже определена, #ffff, если не
    определена, и 1, если не определена, но к ней было уже
    обращение. Если метка - название макроса, то 2.
    'a - старший байт a
    .a - младший байт a
    на что менять и при каких условиях? я же сам ни за что не догадаюсь

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

  3. #2

    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от elf/2
    понял...

    на что менять и при каких условиях? я же сам ни за что не догадаюсь
    a+b, a-b, a*b, a/b, a&b (AND), a|b (OR) все нормально;

    Менять:
    IF на IFN, IFN на IF;
    a!b (XOR) на a^b;
    a>b (циклический сдвиг слова a на b бит вправо) вроде на a>>b или a>>>b (надо проверять);
    a<b (циклический сдвиг слова a на b бит влево) аналогично;

    Вот это надо добавить в sjasm:
    {a} - слово, находящееся в памяти по адресу a;
    a~ (инвертирование текущего результата) - такого в sjasme'е я не видел;
    'a - старший байт a (high a);
    .a - младший байт a (low a);
    ?метка - возвращает 0, если метка уже определена, #ffff, если не определена, и 1, если не определена, но к ней было уже обращение. Если метка - название макроса, то 2;
    Вместо EQU можно писать label=5;

    Дополняйте кто может...

  4. #3

    Регистрация
    17.01.2005
    Адрес
    Cherepovets
    Сообщений
    121
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Spectre
    Вот это надо добавить в sjasm:
    {a} - слово, находящееся в памяти по адресу a;
    a~ (инвертирование текущего результата) - такого в sjasme'е я не видел;
    'a - старший байт a (high a);
    .a - младший байт a (low a);
    Я над этим уже думал. <'a> - в принципе реализуемо, в отличие от <.a>, т.к. <.> при работе с метками уже используется для обозначения принадлежности к какому-либо модулю.
    Цитата Сообщение от Spectre
    ?метка - возвращает 0, если метка уже определена, #ffff, если не определена, и 1, если не определена, но к ней было уже обращение. Если метка - название макроса, то 2;
    Не забывай, что sjasm в отличии от , двухпроходной, и все арифмитические операции выполняются на втором проходе, т.ч. метка "ещё не определённой" быть не может %)
    Цитата Сообщение от Spectre
    Вместо EQU можно писать label=5;
    Такой синтаксис даже оригинальный sjasm 0.39 понимает.
    Цитата Сообщение от Spectre
    Дополняйте кто может...

  5. #4

    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kurles
    Цитата:
    Сообщение от Spectre
    ?метка - возвращает 0, если метка уже определена, #ffff, если не определена, и 1, если не определена, но к ней было уже обращение. Если метка - название макроса, то 2;


    Не забывай, что sjasm в отличии от , двухпроходной, и все арифмитические операции выполняются на втором проходе, т.ч. метка "ещё не определённой" быть не может %)
    Ты немного не так понял. При помощи ? мы проверяем существует ли такая метка в листинге программы. Делается это для таких случаев:

    ;memdriver

    IF ?memdriver
    ...
    ENDIF

    То есть если раскомментировать слово memdriver, то будет компилироваться кусок в IF:ENDIF.

  6. #5

    Регистрация
    17.01.2005
    Адрес
    Belarus, Minsk
    Сообщений
    402
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kurles
    Я над этим уже думал. <'a> - в принципе реализуемо, в отличие от <.a>, т.к. <.> при работе с метками уже используется для обозначения принадлежности к какому-либо модулю.
    Имхо такие символы как ' и . не надо добавлять, т.к. в других асмах спековских совсем по-другому - STORM: [ и ]

    Вышла новая версия - 1.05 RС2. [...вырезано...]
    В этой версии появилась возможность писать команды через запятую типа LD A,B,H,L,A,0 и т.п. Пока это только для LD,INC,DEC,CALL,DJNZ,JP,JR. А что делать с AND,CP,XOR,OR и др., в которых поддерживается запись вида XOR A,B (XOR B) или OR A,C (OR C)? Ведь если написать XOR A,B,A,C,A,D, то получим XOR B,C,D, а должно быть XOR A,B,A,C,A,D как в спековских асмах.
    Последний раз редактировалось Aprisobal; 06.04.2005 в 12:50.
    ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
    ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO

  7. #6

    Регистрация
    23.01.2005
    Сообщений
    1,113
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от aprisobal
    А что делать с AND,CP,XOR,OR и др., в которых поддерживается запись вида XOR A,B (XOR B) или OR A,C (OR C)? Ведь если написать XOR A,B,A,C,A,D, то получим XOR B,C,D, а должно быть XOR A,B,A,C,A,D как в спековских асмах.
    Видимо, отменить xor a,b вместо xor b и т.д. как несуществующие в мануалах по Z80 =)

  8. #7

    Регистрация
    17.01.2005
    Адрес
    Belarus, Minsk
    Сообщений
    402
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Spectre
    {a} - слово, находящееся в памяти по адресу a;
    В SjASM'e скобки {..} являются синонимами (..) и [..]. В других асмах такого не замечал. Всем: как считаете, сделать функцию скобок {..} (будет работать только с ключом -m) такой же как в аласме?
    ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
    ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO

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

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

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

Похожие темы

  1. Кросс-ассемблеры Z80 для Pc
    от Aprisobal в разделе Программирование
    Ответов: 16
    Последнее: 15.01.2011, 22:46
  2. кросс компилятор С для Z80
    от vitasam в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2007, 18:03
  3. Хороший ПЦшный ассемблер - залог успеха!
    от Aprisobal в разделе Программирование
    Ответов: 35
    Последнее: 08.08.2005, 15:25
  4. ZX ассемблер (и не только?) с библиотеками
    от shade в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2005, 19:43

Ваши права

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