Advertisement
Guest User

Untitled

a guest
Feb 1st, 2015
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. AREA MatMul, CODE, READONLY
  2. IMPORT main
  3. EXPORT start
  4.  
  5. start
  6. LDR R0, =matR
  7. LDR R1, =matA
  8. LDR R2, =matB
  9. LDR R3, =N
  10. LDR R4, =0 ;i
  11.  
  12. for1
  13. CMP R4, R3
  14. BHS endFor1
  15. LDR R5, =0 ;j
  16. for2
  17. CMP R5, R3
  18. BHS endFor2
  19. LDR R6, =0 ;k
  20. LDR R7, =0 ;r
  21. for3
  22. CMP R6, R3
  23. BHS endFor3
  24. LDR R8, = 0
  25. MUL R8, R4, R3 ; index = row * row size
  26. ADD R8, R8, R6 ; index = index + col
  27. LDR R9, [R1, R8, LSL#2] ; elem = Memory.Word[ A + (index*4) ]
  28. LDR R8, = 0
  29. MUL R8, R6, R3 ; index = row * row size
  30. ADD R8, R8, R5 ; index = index + col
  31. LDR R10, [R2, R8, LSL#2] ; elem = Memory.Word[ B + (index*4) ]
  32. MUL R11, R10, R9 ; (A[] * B[])
  33. ADD R7, R7, R11 ; r = r + ( A[ i , k ] * B[ k , j ] ) ;
  34. ADD R6, R6, #1 ; k++
  35. B for3
  36. endFor3
  37. STR R7, [R0]
  38. ;STR R7, [R0, R8, LSL #2] ; elem = Memory.Word[ pArr + (index*4) ]
  39. ADD R0, R0, #4
  40. ADD R5, R5, #1 ;j++
  41. B for2
  42. endFor2
  43. ADD R4, R4, #1 ;i++
  44. B for1
  45. endFor1
  46.  
  47.  
  48. LDR R0, =matR
  49.  
  50. stop B stop
  51.  
  52. AREA TestArray, DATA, READWRITE
  53.  
  54. N EQU 4
  55.  
  56. matA DCD 5,4,3,2
  57. DCD 3,4,3,4
  58. DCD 2,3,4,5
  59. DCD 4,3,4,3
  60.  
  61. matB DCD 5,4,3,2
  62. DCD 3,4,3,4
  63. DCD 2,3,4,5
  64. DCD 4,3,4,3
  65.  
  66. matR SPACE 64
  67.  
  68. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement