org 100h

start:
	; wypisz komunikat Podaj znak
	mov	ah, 9
	mov	dx, msg1
	int	21h

	; wczytaj znak i zapisz go do zmiennej val
	mov	ah, 1
	int	21h
	mov	ah, 0
	mov	[val], ax

	; wypisz komunikat
	mov	ah, 9
	mov	dx, enter1
	int	21h

	mov	ah, 9
	mov	dx, msg2
	int	21h

	; wypisz kod znaku
	; przygotuj rejestry
	mov	cx, 0
	mov	ax, [val]
	mov	bx, 10
	; rozłóż liczbę na cyfry
	rcyfry:
		xor	dx, dx
		div	bx
		push	dx
	mov	[val],ax
	mov	ax,[val]
	inc	cx
	cmp	ax, 0
	ja	rcyfry
	; wypisz cyfry ze stosu
	mov	ah, 2
	wcyfry:
		pop	dx
		add	dx, 48
		int	21h
	loop wcyfry

koniec:
	mov	ax, 4C00h
	int	21h

msg1	db	"Podaj znak: $"
msg2	db	"Kod ASCII to: $"
enter1	db	10,13,36
val	db	123	; przechowuje znak do wypisania