org 100h

start:
; wczytaj podstawe
	mov	ah, 9
	mov	dx, kom00
	int	21h

	mov	ah, 1
	int	21h
	mov	[pod], al
; wczytaną podstawę zapisz w rejestrze bx
	sub	ax, 48
	xor	bx, bx
	mov	bl, al

	mov	ah, 9
	mov	dx, enter1
	int	21h
; wczytaj potęge
	mov	ah, 9
	mov	dx, kom01
	int	21h

	mov	ah, 1
	int	21h
	mov	[pot], al
; zamień znak na wartość liczbową
	sub	ax, 48
	xor	cx, cx
	mov	cl, al
; wykonaj potęgowanie
	xor	ax, ax
	potega:
		mov	al, [wynik]
		mul	bx
		mov	[wynik], al
	loop potega

; wypisanie wyniku
	mov	ah, 9
	mov	dx, enter1
	int	21h

	mov	ah, 2
	mov	dl, [pod]
	int	21h

	mov	ah, 2
	mov	dl, 94
	int	21h

	mov	ah, 2
	mov	dl, [pot]
	int	21h

	mov	ah, 9
	mov	dx, kom02
	int	21h

	mov	ah, 2
	mov	dl, [wynik]
	int	21h

mov	ax, 4C00h
int	21h

; zmienne
wynik	db	1	; wynik potęgowania
pot	db	1	; potęga do której podnosimy
pod	db	1	; podstawa
kom00	db	"Podaj podstawe potegi:",10,13," a = $"
kom01	db	"Podaj potege:",10,13," n = $"
kom02	db	" = $"
enter1	db	10,13,'$'