сделал иначе:
Код:
#define _sync()			asm("	ei"); asm("	defb 76h");
на это макросе компилятор выдаёт несколько ошибок:
Код:
:                                 asm("   ei"); asm("     defb 76h");

                                  ) expected ^
                                  ; expected ^
                                   ( expected ^
                            expression syntax ^
                                   ) expected ^
                                                        ) expected ^
                                                        ; expected ^
                                                         ( expected ^
                                                  expression syntax ^
                                                         ) expected ^
но при этом всё собирается, и халт на месте.
если засовывать в либу, тогда конструкция выростает до:
Код:
_sync:		pop de  ; return address
		push de
                ei
                halt
                ret
т.е. лишние телодвижения.