Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AREA MatMul, CODE, READONLY
- IMPORT main
- EXPORT start
- start
- LDR R0, =matR
- LDR R1, =matA
- LDR R2, =matB
- LDR R3, =N
- LDR R4, =0 ;i
- for1
- CMP R4, R3
- BHS endFor1
- LDR R5, =0 ;j
- for2
- CMP R5, R3
- BHS endFor2
- LDR R6, =0 ;k
- LDR R7, =0 ;r
- for3
- CMP R6, R3
- BHS endFor3
- LDR R8, = 0
- MUL R8, R4, R3 ; index = row * row size
- ADD R8, R8, R6 ; index = index + col
- LDR R9, [R1, R8, LSL#2] ; elem = Memory.Word[ A + (index*4) ]
- LDR R8, = 0
- MUL R8, R6, R3 ; index = row * row size
- ADD R8, R8, R5 ; index = index + col
- LDR R10, [R2, R8, LSL#2] ; elem = Memory.Word[ B + (index*4) ]
- MUL R11, R10, R9 ; (A[] * B[])
- ADD R7, R7, R11 ; r = r + ( A[ i , k ] * B[ k , j ] ) ;
- ADD R6, R6, #1 ; k++
- B for3
- endFor3
- STR R7, [R0]
- ;STR R7, [R0, R8, LSL #2] ; elem = Memory.Word[ pArr + (index*4) ]
- ADD R0, R0, #4
- ADD R5, R5, #1 ;j++
- B for2
- endFor2
- ADD R4, R4, #1 ;i++
- B for1
- endFor1
- LDR R0, =matR
- stop B stop
- AREA TestArray, DATA, READWRITE
- N EQU 4
- matA DCD 5,4,3,2
- DCD 3,4,3,4
- DCD 2,3,4,5
- DCD 4,3,4,3
- matB DCD 5,4,3,2
- DCD 3,4,3,4
- DCD 2,3,4,5
- DCD 4,3,4,3
- matR SPACE 64
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement