# gcc -nostdlib -nostdinc -Wl,--oformat,binary,-Ttext,0x100 a.s
# Instruction length test 2
	.code16
	mov	$st, %di
lp:	call	cv
	mov	$4, %cl
	shl	%cl, %al
	push	%ax
	call	cv
	pop	%bx
	or	%bl, %al
	cld
	stosb
	jmp	lp
cv:	mov	$1, %ah
	int	$0x21
	sub	$'0', %al
	jb	done
	test	$0x10, %al
	je	1f
	sub	$7, %al
1:	and	$0xf, %al
	ret
done:	mov	%di, ed
	mov	$0x3501, %ax
	int	$0x21
	push	%es
	push	%bx
	mov	%sp, orig_addr
	push	%cs
	pop	%es
	mov	$int1, %dx
	mov	$0x2501, %ax
	int	$0x21
	mov	%sp, stk
	cli
	pushf
	pop	%ax
	or	$1, %ah
	push	%ax
	push	%cs
	mov	$st, %ax
	mov	%ax, to
	push	%ax
	iret
int1:	push	%bp
	mov	%sp, %bp
	push	%ax
	push	%dx
	mov	%cs, %ax
	cmp	4(%bp), %ax
	jne	quit
	mov	2(%bp), %ax
	push	%ax
	sub	$0x1111, %ax
	to=.-2
	call	prhex
	pop	%ax
	cmp	$0x1111, %ax
	ed=.-2
	jae	quit
	mov	%ax, %cs:to
	pop	%dx
	pop	%ax
	pop	%bp
	iret
quit:	lds	%ss:0x1111, %dx
	orig_addr=.-2
	mov	$0x2501, %ax
	int	$0x21
	lea	8(%bp), %sp
2:	cmp	$0x1111, %sp
	stk=.-2
	jae	exit
	mov	$' ', %dl
	mov	$2, %ah
	int	$0x21
	pop	%ax
	mov	$2b, %cx
	push	%cx
	call	1f
1:	xchg	%ah, %al
	call	1f
1:	mov	$4, %cl
	rol	%cl, %al
prhex:	push	%ax
	and	$0xf, %al
	add	$0x90, %al
	daa
	adc	$0x40, %al
	daa
	mov	%al, %dl
	mov	$2, %ah
	int	$0x21
	pop	%ax
	ret
exit:	int	$0x20
st:
