@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ Prints out hexadecimal numbers from 0x98 to 0xA5.
@ One number per line.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

.globl _start
_start:
	ldr r4,=0x101f1000	
	@ ASCII codes stored 
	@ at [r4] get printed

	mov r0, #0x98

my_loop:	
	cmp r0, #0xA5
	bgt my_exit

	lsr r1, r0, #4
	and r1, r1, #0x0000000f
	cmp r1, #10
	addlt r1, r1, #48
	addge r1, r1, #55
	str r1, [r4]

	lsr r1, r0, #0
	and r1, r1, #0x0000000f
	cmp r1, #10
	addlt r1, r1, #48
	addge r1, r1, #55
	str r1, [r4]

	mov r1, #13		
	str r1, [r4]		
	mov r1, #10		
	str r1, [r4]		

	add r0, r0, #1
	b my_loop
	
my_exit: 			@ print "END" on a new line
	mov r1, #'\r'
	str r1, [r4]		
	mov r1, #'\n'		
	str r1, [r4]		
	mov r1, #'E'		
	str r1, [r4]		
	mov r1, #'N'		
	str r1, [r4]		
	mov r1, #'D'		
	str r1, [r4]

the_end:			@ do infinite loop at the end
	b the_end	

