# gcc -nostdlib -nostdinc -Wl,--oformat,binary,-Ttext,0x100 a.s
	# MOV CS test 3
	.code16
	mov	$0x80-1, %si
	mov	$st, %di
	cld
	lodsw
lp:	call	cv
	mov	$4, %cl
	shl	%cl, %al
	push	%ax
	call	cv
	pop	%bx
	or	%bl, %al
	stosb
	jmp	lp
done:	mov	$0xcb8e, %ax	# mov %bx, %cs
	cld
	stosw
	mov	$0x43, %al	# inc %bx
	mov	$0x10, %cx
	rep	stosb
	mov	$0xcb, %al	# lret
	mov	$0x10, %cl
	rep	stosb
	mov	%cs, %bx
	inc	%bx
	push	%bx
	push	%cs
	cli
	call	st
	sti
	pop	%dx
	neg	%dx
	add	%bx, %dx
	add	$'0', %dl
	mov	$2, %ah
	int	$0x21
	int	$0x20
cv:	dec	%ah
	js	done
	lodsb
	sub	$'0', %al
	jb	cv
	test	$0x10, %al
	je	1f
	sub	$7, %al
1:	and	$0xf, %al
	ret
st:
