AREA transform,CODE,READONLY
ARM汇编实现矩阵转置
ENTRY
EXPORT main
main
LDR R0,=src1
LDR R8,=src2
MOV R2,#3
MOV R3,#2
MOV R4,#1
MOV R5,#1
MOV R10,#4
LOOP1
LOOP2
SUB R6,R4,#1
MUL R6,R6,R3
ADD R6,R6,R5
SUB R6,R6,#1
MUL R6,R6,R10
SUB R7,R5,#1
MUL R7,R7,R2
ADD R7,R7,R4
SUB R7,R7,#1
MUL R7,R7,R10
LDR R1,[R0,R6]
STR R1,[R8,R7]
ADD R5,R5,#1
CMP R5,R3
BLS LOOP2
MOV R5,#1
ADD R4,#1
CMP R4,R2
BLS LOOP1
AREA Array,DATA,READWRITE
src1
DCD 0x12345678,0x87654321
DCD 0xABCDEF12,0xCDEFAB45
DCD 0x20932197,0xABC99DA3
src2
DCD 0,0,0
DCD 0,0,0
END
测试用例:
0x12345678,0x87654321
0xABCDEF12,0xCDEFAB45
0x20932197,0xABC99DA3
仿真结果
0x12345678, 0xABCDEF12, 0x20932197
0x87654321, 0xCDEFAB45, 0xABC99DA3