Use Keil ARM assembly to check whether an N × N matrix is a magic square. A magic square is an N × N matrix in which the sums of all rows, column, and the two diagonals add up to N (N2 + 1)/2. All matrix entries are unique numbers from 1 to N2. Register r1 will hold N. The matrix starts at location 0x20000010 (Base address) and ends at location (Base address + N2). It is assumed that all numbers are bytes, consider the 4-byte size of integers. Use the included picture The numbers 16, 3, 2, 13 will be stored at first four addresses, respectively. The numbers 5, 10, 11, and 8 would be stored at next four addresses, etc. If the matrix is a magic square, register r8 will be set (R8 should have a value 1) upon completion; otherwise, it will be cleared to 0.
Use Keil ARM assembly to check whether an N × N matrix is a magic square.
A magic square is an N × N matrix in which the sums of all rows, column, and the two diagonals add up to N (N2 + 1)/2. All matrix entries are unique numbers from 1 to N2. Register r1 will hold N. The matrix starts at location 0x20000010 (Base address) and ends at location (Base address + N2). It is assumed that all numbers are bytes, consider the 4-byte size of integers.
Use the included picture
The numbers 16, 3, 2, 13 will be stored at first four addresses, respectively. The numbers 5, 10, 11, and 8 would be stored at next four addresses, etc. If the matrix is a magic square, register r8 will be set (R8 should have a value 1) upon completion; otherwise, it will be cleared to 0.
Please don't make it too complicated, if you can, I want to learn what I am writing down, if possible. Thank you!
Step by step
Solved in 3 steps