Для обработки конструкций типа mov bx, offset next

Для обработки конструкций типа mov bx, offset next / jmp proc / next: есть решение лучше скриптов. Чтобы листинг не засорялся лишними метками, переходами и разрывами связи, можно загнать эти конструкции в макросы. Чтобы это стало возможным в дизассемблированном листинге IDA, есть вариант написания процессорного модуля-надстройки над стандартным x86, дизассемблирующим такие конструкции как псевдоинструкции-макросы. Пример:

		or	ah, 0A0h
		mov	bx, offset loc_FCCAB
		jmp	loc_FE913
; ---------------------------------------------------------------------------

loc_FCCAB:				; CODE XREF: seg000:CCB7j
					; DATA XREF: seg000:CCA5o
		mov	ax, 29h	; ')'
		mov	bx, offset loc_FCCB4
		jmp	loc_FE907
; ---------------------------------------------------------------------------

loc_FCCB4:				; DATA XREF: seg000:CCAEo
		test	ah, 10h
		jz	short loc_FCCAB
		mov	ax, 707h
		mov	bx, offset loc_FCCC2
		jmp	loc_FE913
; ---------------------------------------------------------------------------

loc_FCCC2:				; DATA XREF: seg000:CCBCo

дизассемблируется как
		or	ah, 0A0h
		ROMCallBX sub_FE913

loc_FCCAB:				; CODE XREF: seg000:CCB7j
		mov	ax, 29h	; ')'
		ROMCallBX sub_FE907
		test	ah, 10h
		jz	short loc_FCCAB
		mov	ax, 707h
		ROMCallBX sub_FE913

Мне последний вариант представляется более читабельным, поэтому я такой модуль написал. Выложил тут: diamond.kolibrios.org/ida/romcall.htm