%imacro wllist 1-2.nolist global ..@wllist_%1?%[%%l] ..@wllist_%1?%[%%l]: %2 %endmacro section code wllist g_ginitgroup_sinit wllist n_sinit_linit_code_386 wllist n_sinit_linit_code_no386 mov ax, init mov ds, ax extern init_code_386 extern init_code_386.end extern init_code_386.amount extern init_code_no386 extern init_code_no386.end extern init_code_no386.amount mov si, init_code_386 mov cx, init_code_386.amount l: lodsw loop l cmp si, init_code_386.end jne error mov si, init_code_no386 mov cx, init_code_no386.amount q: lodsw xchg di, ax mov byte [cs:di], 90h loop q cmp si, init_code_no386.end jne error align 64 nop nop wllist linit_code_386 mov ax, 1234h nop wllist linit_code_386 inc ax wllist linit_code_no386 o32 push ax wllist linit_code_no386 o32 push bx wllist linit_code_no386 o32 push cx wllist linit_code_no386 o32 push dx mov al, '^' wllist linit_code_no386, equ $ - 1 mov ax, 4C00h int 21h error: mov ax, 4CFFh int 21h group initgroup init section init align=1