Advertisement
Guest User

Untitled

a guest
May 15th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 1.05 KB | None | 0 0
  1. .syntax unified
  2. .global main
  3.  
  4. main:
  5.   @ set up the arguments
  6.   mov r0, 66 @ ass1 mark
  7.   mov r1, 73 @ ass2 mark
  8.   mov r2, 71 @ ass3 mark
  9.  
  10.   @ call the function
  11.   bl calculate_grade
  12.  
  13.   @ go to the end loop
  14.   b end
  15.  
  16. end:
  17.   b end
  18.  
  19. calculate_grade:
  20.     str lr, [sp, #-4]!
  21.  
  22.     bl calculate_total_mark
  23.     bl grade_from_mark
  24.  
  25.     ldr lr, [sp], #4
  26.  
  27.     bx lr
  28.  
  29. calculate_total_mark:
  30.   @ do stuff with the arguments
  31.   @ ...
  32.   mov r3, 4
  33.   mov r4, 2
  34.  
  35.   sdiv r0, r3
  36.   sdiv r1, r3
  37.   sdiv r2, r4
  38.  
  39.   @ put the result in r0
  40.   add r0, r0, r1
  41.   add r0, r0, r2
  42.  
  43.   @ go back to where the function was called from
  44.   bx lr
  45.  
  46. grade_from_mark:
  47.     cmp r0, 50
  48.     it le
  49.     movle r0, 0xf
  50.     it le
  51.     bxle lr
  52.  
  53.     mov r1, 99
  54.     mov r2, 10
  55.  
  56.     sub r0, r1, r0
  57.     udiv r0, r2
  58.     add r0, 0xa
  59.  
  60.     bx lr
  61.  
  62. grade_from_mark_recursive:
  63.     cmp r0, 50
  64.     it le
  65.     movle r0, 0xf
  66.     it le
  67.     bxle lr
  68.  
  69.     cmp r0, 50
  70.     itt eq
  71.     movle r0, 0xe
  72.     bx
  73.  
  74.     cmp r0, 60
  75.     it eq
  76.     movle r0, 0xe
  77.  
  78.     cmp r0, 70
  79.     it eq
  80.     movle r0, 0xe
  81.  
  82.     cmp r0, 80
  83.     it eq
  84.     movle r0, 0xe
  85.  
  86.     cmp r0, 90
  87.     it eq
  88.     movle r0, 0xe
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement