Что `%ifdef` и`%defstr` делают в сборке (в терминах непрофессионала)?

Я читаю некоторый исходный код ассемблера только для целей обучения (мне нравится учиться, выясняя код).

Я наткнулся на следующие строки:

%ifdef KERNEL
    kernel_file:
      %defstr KERNEL_STR %[KERNEL]
      incbin KERNEL_STR
    .end:
    align 512, db 0
%else
    align BLOCK_SIZE, db 0
    %ifdef FILESYSTEM
        filesystem:
            %defstr FILESYSTEM_STR %[FILESYSTEM]
            incbin FILESYSTEM_STR
        .end:
        align BLOCK_SIZE, db 0
    %else
        filesystem:
    %endif
%endif

я знаю что %include делает, и я могу сказать, что %ifdef является оператором if.

Я полностью потерян с %defstr, Я только нашел объяснение на этом сайте и запутался еще больше.

Может ли кто-нибудь дать мне ОЧЕНЬ ОСНОВНОЕ объяснение того, что он делает?

0 ответов

Другие вопросы по тегам