При использовании директивы WHILE asm инициализируется как:

    GBLA    w
    WHILE   w < 10
w   SETA    w+1
    ; code
    WEND

Как мы можем сделать так, чтобы ;code был повторяющимся сегментом, включающим метку (скажем, мы условно возвращаемся к нему в сегменте)?

Я пробовал делать:

w.label    ;code
           ;code
           B{cond}    w.label

А также label.w.

Я также попытался сформировать макрос с w, переданным в качестве параметра, но он не хотел таким образом присоединять label к числовому значению.

Работает ли . только для строк, и если да, могу ли я объединить строку и литерал каким-либо другим способом?

Или как еще я могу добавить метку в сегмент, который будет повторяться w раз?

0
OJFord 19 Янв 2014 в 05:41

1 ответ

Лучший ответ

Это одна из причин, по которой существуют местные ярлыки. :

1:    ;code
      ;code
      B{cond}    1b    @ look (b)ackwards for the nearest "1:"

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

1
Notlikethat 22 Янв 2014 в 04:53