Advertisement
Guest User

int mull

a guest
May 31st, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 0.95 KB | None | 0 0
  1. real_mul:
  2.  
  3.     cmp r0, #0
  4.     it eq
  5.     moveq r0, #0
  6.     cmp r1, #0
  7.     it eq
  8.     moveq r0, #0
  9.    
  10.     mov r5, #0
  11.  
  12.     mov r2, r0, lsr #31
  13.     mov r3, r1, lsr #31
  14.     eor r2,r3,r2        ;flag de sinal
  15.    
  16.     mov r3, r0, lsl #1
  17.     mov r3, r3, lsr #24
  18.     sub r3, r3, #127    ;expoente mutiplicando
  19.  
  20.    
  21.     mov r4, r1, lsl #1
  22.     mov r4, r4, lsr #24
  23.     sub r4, r4, #127    ;expoente mutiplicador
  24.    
  25.     add r5, r3, r4      ;expoelte da mutiplicaçao
  26.    
  27.     mov r6, r0, lsl #9
  28.     mov r6, r6, lsr#1
  29.     add r6, r6, #10000000000000000000000000000000b
  30.    
  31.     mov r7, r1, lsl #9
  32.     mov r7, r7, lsr #1
  33.     add r7, r7, #10000000000000000000000000000000b
  34.    
  35.     sub r3, r5, r3
  36.     lsr r6, r3
  37.    
  38.     sub r4, r5, r4
  39.     lsr r7, r4
  40.    
  41.     mov r0, r6
  42.     mov r1, r7
  43.    
  44.     push {lr, r2, r5}
  45.    
  46.     bl main_int_mul
  47.    
  48.     pop {lr, r2, r5}
  49.    
  50.     mov r3, r1, lsr #25
  51.     cmp r3,#2
  52.     it ge
  53.     lsrge r1, #1
  54.     it ge
  55.     addge r5, r5, #1
  56.    
  57.     lsl r1, #7
  58.     lsr r1, #9
  59.    
  60.     lsl r2, #31
  61.    
  62.     add r5, r5, #127
  63.     lsl r5, #23
  64.    
  65.     add r0, r2,r5
  66.     add r0, r0,r1       ;result
  67.    
  68.     bx lr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement