Advertisement
Guest User

Untitled

a guest
Jun 4th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 0.66 KB | None | 0 0
  1. .align 4
  2. .global _start_
  3.  
  4. .section .text.start, "x"
  5.  
  6. .arm
  7.  
  8. _start_:
  9.   ldr r0, =0x04000200
  10.   mov r1, #0
  11.   str r1, [r0, #8]  //disable ime
  12.   str r1, [r0, #0x10] //disable all interrupts
  13.   str r1, [r0, #0x18]
  14.   mov r1, #0xFFFFFFFF
  15.   str r1, [r0, #0x14] //clear pending irqs
  16.   str r1, [r0, #0x1C]
  17.   bl bss_loop
  18.   ldr sp, =0x03808000 //setup stack; stack grows downwards, so start it here.
  19.   bl main //start executing C code
  20.   b .
  21.  
  22. bss_loop:
  23.   ldr r0, =__bss_start
  24.   ldr r1, =__bss_end
  25.   mov r2, #0
  26. clear_bss:
  27.   cmp r0, r1 //check if we're at the end
  28.  bxeq lr //if we're at the end, return
  29.   str r2, [r0], #4 //clear the word
  30.   b clear_bss
  31.  
  32. .pool
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement