User Tag List

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

Тема: SjASMPlus от z00m

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

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

    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    105
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    25 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не могу понять, как правильно работать с IFUSED?

    DEVICE ZXSPECTRUM48

    ORG 0x8000


    main:
    <code>
    <code>
    <code>
    <code>
    <code>
    ret

    include "address.asm" ; здесь объявлен модуль coords
    include "out43.asm"
    include "sto_rec.asm"
    include "pause.asm"
    include "windows.asm"
    Главная программа.




    module coords

    ifused XxXxXxX

    XxXxXxX <code>
    <code>
    <code>
    <code>
    ret

    endif
    Файл address.asm, в котором объявлен модуль coords.




    module windows

    CLS <code>
    <code>
    <code>
    <code>
    <code>
    call coords.XxXxXxX
    ret
    Другой модуль, который ссылается на ссылку в модуле coords.




    Pass 3 complete
    Errors: 4, warnings: 0, compiled: 870 lines, work time: 0.015 seconds
    The terminal process "C:\Program Files\PowerShell\7\pwsh.exe -Command sjasmplus --sld=test.sld --fullpath test.asm" terminated with exit code: 1.

    Terminal will be reused by tasks, press any key to close it.

    > Executing task: sjasmplus --sld=test.sld --fullpath test.asm <

    SjASMPlus Z80 Cross-Assembler v1.18.2 (https://github.com/z00m128/sjasmplus)
    Pass 1 complete (0 errors)
    Pass 2 complete (0 errors)
    windows.asm(91): error: Label not found: windows.coords.XxXxXxX
    Результат...
    Что неправильно?

    upd
    "Known bug: when code is using label inside module "moduleX", like call labelY, only usage of moduleX.labelY label is noted. Then if you define "labelY" outside of module and hide it inside IFUSED labelY block, the call from module will be unable to find the routine.

    Workaround: you can use the global-label operator @: "call @labelY" to trigger usage of the global "labelY", or you can use the alternative IFUSED syntax "labelY: IFUSED" which does not only check condition, but also does define the label. Once the label is defined, the "call labelY" line inside module will find the global variant and mark it as "used" correctly."
    Оно?

    Вроде бы, оно...
    Но новая беда - если написать
    labelY: IFUSED
    то не работают временные метки.
    Последний раз редактировалось 0xDEAD; 19.08.2021 в 18:38.

    Этот пользователь поблагодарил 0xDEAD за это полезное сообщение:

    Ped7g(19.08.2021)

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

  3. #2

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    810
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    77
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    			module n1
    			call @m1.used1
    			endmodule
    			module m1
    			ifused used1
    used1
    			nop
    			jr	1F
    			nop
    1
    			ret
    			endif
    			endmodule
    Так работает, а с новым синтаксисом да, косяк.

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

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

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

Похожие темы

  1. SjASMPlus Z80 кросс ассемблер
    от Aprisobal в разделе Программирование
    Ответов: 1663
    Последнее: 19.06.2021, 01:36
  2. Исходники TR-DOS для SjASMPlus
    от Keeper в разделе Программирование
    Ответов: 20
    Последнее: 11.02.2011, 11:57
  3. Запуск STS из .sna, сгенерированного sjasmplus.
    от siril в разделе Программирование
    Ответов: 7
    Последнее: 11.10.2010, 21:33
  4. Breakpoints в связке Sjasmplus+UnrealSpeccy
    от Kurles в разделе Программирование
    Ответов: 19
    Последнее: 26.01.2009, 12:36
  5. Disturbed COverMAnia ( music disk with z00m music collection)
    от kyv в разделе Музыка
    Ответов: 10
    Последнее: 27.03.2008, 10:01

Ваши права

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