Здравствуйте, Sbuber!
Макро под TASM и пример использования в приложении
Макро используется для формирования связанного списка записей
следующего вида:
<font color=blue>rec struc
value dw ?
next dw ?
rec ends</font>
где value - значение поля значения записи,
next - адрес следующей записи в списке.
Число записей и имя списка задаются параметрами макро.
Для чего можно использовать?...Да везде, где нужно построить подобный список...
Приложение:
.model tiny
LIST MACRO @COUNT,@NAME
local @@off
@@off = offset @NAME ;будем писать этот адрес в поле следующей записи
@NAME LABEL WORD ;адрес списка
IFE @COUNT ;если @COUNT=0, то будет только метка...
ELSE ;иначе строим
dw ? ;поле данных первой записи
rept @COUNT-1 ;середина (на 1 меньше, чем число записей)
@@off = @@off + 4 ;готовим значение адреса следующей записи
dw @@off ;строим поле адреса следующей записи
dw ? ;поле данных следующей записи
ENDM ;циклим @COUNT-1 раз
dw -1 ;завершаем список признаком конца
ENDIF ;завершаем анализ значения счетчика
ENDM
.data
LIST 100,SPACE ;построим список
.code
.startup
lea ax,SPACE ;чтобы проще было находить в отрадчике
.exit 0
end
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен