 mandigit (22.09.2010 15:37, просмотров: 103) ответил mandigit на инициализация глобальных переменных в связке си+асм?
 mandigit (22.09.2010 15:37, просмотров: 103) ответил mandigit на инициализация глобальных переменных в связке си+асм?
Все оказалось не просто: необходимо положить значения, которыми должна инициализироваться переменная во флеш память и дать компилятору знать, что требуется инициализация, если в си коде нигде такая инициализация не применялась. В результате, работающий код выглядит так:
RSEG	NEAR_I
	REQUIRE `?<Segment init: NEAR_I>`
ms20_use	DS8	1
	REQUIRE `?<Initializer for ms20_use>`
RSEG	NEAR_ID
`?<Initializer for ms20_use>`:
	DB	0xFF
EXTERN ?need_segment_init
RSEG INITTAB:CODE:NOROOT(0)
`?<Segment init: NEAR_I>`:
	DW      SFE(NEAR_I) - SFB(NEAR_I)
	DW      SFB(NEAR_I)
	DW      SFB(NEAR_ID)
	REQUIRE ?need_segment_init