User Tag List

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

Тема: ASAM Compiler By Rob F. / Entire Group ...

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

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

    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking ASAM Compiler v.001.025A ...

    Новые добавления.

    1. Сделан 64-битовый математический блок. 10-ть знаков до и 10-ть знаков после запятой. Скорость мат-функций всего в два раза быстрее ВАСИКа. Не очень хорошё работает оптимезатор мат-функций, будет время доделаю. Пример

    Код:
            EQU $ASAM.PASS.ERROR=2
            INCLUDE "asam-80.inc"
    
            ORG 33025
            MATH R_A-8*56+R_B/4 - 3*(SIN*R_B)
            RET
    
    VAR R_A=3
    VAR R_B=-7
    
            ASAM.MATH.INIT
    Вообщем посчитает. Как вы уже поняли VAR откушает 8 байт памяти на числовую операцию. Можете не писать =??? и тогд туда автоматом пропишется 0. Совет, не резервируйте регистры с именем "A", этим вы замените все аккумуляторы на точку памяти.
    Так же в мат-модуле есть внутренние регистры. Ежели вы использете хотя бы раз "MATH A=6553H.34", то под регистр "А" будет автоматически зарезервировано место.
    Числовой формат: первые четыре байта это значение до запятой, последние четыре байта это значение после запятой.

    2. Сделаны числовые метки. Допустим:
    Код:
    LAB   EQU 213
    POPIKLAB05  ;Как всегда кодировка винды не поддерживает нужные символы ...
    В итоге мы получаем метку "POPIK00213"

    3. Модернезирован макрос:
    Код:
          .IF (<>) THEN√
            ;ЧТО-то
          ..
          .IF (<=) THEN√
            ;ЧТО-то
          ..
          .IF (=>) THEN√
            ;ЧТО-то
          ..
          .IF (<) THEN√
            ;ЧТО-то
          ..
          .IF (>) THEN√
            ;ЧТО-то
          ..
          .IF (=) THEN√
            ;ЧТО-то
          ..
    Ну и теперь у вас есть ифы ... Компилятор будет искать любые вариации разделяя их жёсткими сепараторами из макросов. Как появится время опишу все главные комманды.

    4. Сделаны метки с приоритетами:
    Код:
          .IF (=) THEN√
           ASAM_INC_IFC
           MATH (@.0)-(@.1)
           JZ _ASAM_IF_ELSE$ASAM.ASAM.IFC03
          ..
    
          .ELSE
           EQUID _ASAM_IF_ELSE$ASAM.ASAM.IFC03[1]=$
          ..
    
          .END IF
           EQUID _ASAM_IF_ELSE$ASAM.ASAM.IFC03[2]=$
    _ASAM_IF_END$ASAM.ASAM.IFC03[2]
           ASAM_DEC_IFC
          ..
    Как вы заметили оператор EQUID резервирует метку _ASAM_IF_ELSE001. В квадратных скобках указывается приоритет. В "ELSE" он имеет 1, в "END IF" он 2. Ежели вы напишите:
    Код:
      IF 7=7 THEN
       LD A,1
      END IF
    В данном случае "ELSE" не учавствует в коде, и автоматически _ASAM_IF_ELSE001 будет равен _ASAM_IF_END001 и указывать на конец IF'а. Если:
    Код:
      IF 7=7 THEN
       LD A,1
      ELSE
       LD A,0
      END IF
    То в данном случае _ASAM_IF_ELSE001 будет компилятором встречаться дважды но в "END IF" будет иметь приоритет 2 и игнорироваться.

    Имея фантазию вы легко сделаете любые операторы.
    Вложения Вложения
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

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

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

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

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

Похожие темы

  1. Colorbok^Phantom Family Group
    от rajdee в разделе Графика
    Ответов: 12
    Последнее: 20.01.2011, 23:32
  2. C compiler
    от vitasam в разделе Программирование
    Ответов: 17
    Последнее: 25.08.2005, 16:42

Ваши права

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