Alpha_dllg的个人空间 https://blog.eetop.cn/1010876 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

ARM之矩阵转置

已有 2553 次阅读| 2012-10-15 17:26 |个人分类:ARM

天气: 晴朗
心情: 平静

/*----------------------------------------------------

* 寄存器使用说明:

* R0:源数据地址

* R1:目标数据地址

* R2:源数据行数目(目标数据列数目)

* R3:源数据列数目(目标数据行数目)

*

*----------------------------------------------------*/

 

.global _start

 

.equ  ROW,      8

.equ  COLUMN,   4

.equ  S_SIZE,   16            @源数据每行字节数

.equ  D_SIZE,   32            @目标数据每行字节数

 

.text

 

.arm

 

_start:

       LDR R0,=DataZone

       LDR R1,=Resault

       MOV R3,#0

       MOV R4,#S_SIZE

       MOV R5,#D_SIZE

       MOV R8,#4

      

Loop_1:

      MOV R2,#0

      MLA R6,R3,R4,R0        @源数据换行

      MLA R7,R3,R8,R1        @目标数据换列      

     

Loop_2:     

      LDR R9,[R6]

      STR R9,[R7]

      ADD R2,R2,#1

      MLA R6,R2,R8,R6               @计算获得下一个源数据地址

      MLA R7,R2,R5,R7               @计算获得下一个目标数据地址

      TEQ R2,#COLUMN

      BNE Loop_2

      ADD R3,R3,#1    

      TEQ R3,#ROW

      BNE Loop_1

    

Stop:

      B Stop      

   

.ltorg

DataZone:

      .long 0x12345678,0x87654321,0xABCDEF12,0xCDEFAB45

      .long 0x20932197,0xABC99DA3,0x5522AB90,0x338899A2

      .long 0x2345FDEA,0x77AD3F61,0x5290C316,0x2728CE2A

      .long 0x9AC67D4F,0x8FB247AE,0x2064887C,0xCCB3267A

      .long 0x2DFA1947,0xA245861B,0x9235AD78,0xC365A247

      .long 0x2F965AA4,0x92348365,0xABC90273,0x47598334

      .long 0x453B436A,0x23AE23DD,0x35563242,0x2354CAF2

      .long 0x54379652,0xA354EF34,0xBBB32523,0x234B289A

Resault:

      .long 0,0,0,0,0,0,0,0

      .long 0,0,0,0,0,0,0,0

      .long 0,0,0,0,0,0,0,0

      .long 0,0,0,0,0,0,0,0     

    

.end                                    @文件结束


点赞

发表评论 评论 (1 个评论)

回复 Alpha_dllg 2012-10-18 08:37
其实这里有一个错误的,貌似没人看出来啊

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 2

    评论
  • 304

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 12:10 , Processed in 0.020707 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部