bcs转10 c语言,ARM汇编转C语言 - ARM技术论坛-ARM嵌入式论坛-人气最火爆ARM学习论坛 - 21ic电子技术开发论坛...

本帖最后由 wglzp123456 于 2019-6-15 19:21 编辑

//ARM汇编代码

0894        B570           PUSH      {R4-R6,LR}

0896        4938           LDR       R1,D00000978;[PC,#224] R1=0x20000FA8

0898        2200           MOVS      R2,#0x0

089A        2404           MOVS      R4,#0x4

089C        F891 5041    LDRB.W    R5,[R1,#0x41]

08A0        2301           MOVS      R3,#0x1

08A2        2D05           CMP       R5,#5

08A4        D262           BCS       Q0000096C

08A6        E8DF F005   TBB       [PC,R5]

08AA       DB  03

DB  25

08AC       DB  3B

DB  44

DB  59

DB  00

//0---------------------------------------------------

08B0        F5A0 42AA    SUB.W     R2,R0,#0x5500

08B4        3AAA         SUBS      R2,#0xAA

08B6        D00F         BEQ       Q000008D8

08B8        3A11         SUBS      R2,#0x11

08BA        D11A         BNE       Q000008F2

08BC        F891 2086    LDRB.W    R2,[R1,#0x86]

08C0        2A00         CMP       R2,#0

08C2        D116         BNE       Q000008F2

08C4        F881 408A    STRB.W    R4,[R1,#0x8A]

08C8        F8A1 0066    STRH.W    R0,[R1,#0x66]

08CC        F881 3087    STRB.W    R3,[R1,#0x87]

08D0        F8A1 0088    STRH.W    R0,[R1,#0x88]

08D4        2003            MOVS      R0,#0x3

08D6        E01D           B         Q00000914

08D8        F891 2062    LDRB.W    R2,[R1,#0x62]

08DC        2A00            CMP       R2,#0

08DE        D108           BNE       Q000008F2

08E0        F881 408A    STRB.W    R4,[R1,#0x8A]

08E4        F821 0F42    STRH.W    R0,[R1,#0x42]!

08E8        F881 3021    STRB.W    R3,[R1,#0x21]

08EC        8448            STRH      R0,[R1,#0x22]

08EE        F801 3C01    STRB.W    R3,[R1,#-0x1]

08F2        BD70            POP       {R4-R6,PC}

//1--------------------------------------------------

08F4        F891 2063    LDRB.W    R2,[R1,#0x63]

08F8        EB01 0342    ADD.W     R3, R1,R2,LSL #1

08FC        1C52            ADDS      R2,R2,#1

08FE        F8A3 0042    STRH.W    R0,[R3,#0x42]

0902        F8B1 3064    LDRH      R3,[R1,#0x64]

0906        B2D2           UXTB      R2,R2

0908        4418            ADD       R0,R3

090A        F8A1 0064    STRH.W    R0,[R1,#0x64]

090E        2A0F            CMP       R2,#15

0910        D303            BCC       Q0000091A

0912        2002            MOVS      R0,#0x2

0914        F881 0041    STRB.W    R0,[R1,#0x41]

0918        BD70           POP       {R4-R6,PC}

091A        F881 2063    STRB.W    R2,[R1,#0x63]

091E        BD70           POP       {R4-R6,PC}

//2---------------------------------------------------

0920        F8B1 4064    LDRH      R4,[R1,#0x64]

0924        4284            CMP       R4,R0

0926        D121            BNE       Q0000096C

0928        F8A1 0060    STRH.W    R0,[R1,#0x60]

092C        F881 3062    STRB.W    R3,[R1,#0x62]

0930        E01C            B         Q0000096C

//3----------------------------------------------------

0932        F891 2087    LDRB.W    R2,[R1,#0x87]

0936        EB01 0342    ADD.W     R3, R1,R2,LSL #1

093A        1C52            ADDS      R2,R2,#1

093C        F8A3 0066    STRH.W    R0,[R3,#0x66]

0940        F8B1 3088    LDRH      R3,[R1,#0x88]

0944        B2D2           UXTB      R2,R2

0946        4418            ADD       R0,R3

0948        F8A1 0088    STRH.W    R0,[R1,#0x88]

094C        2A0F            CMP       R2,#15

094E        D302            BCC       Q00000956

0950        F881 4041    STRB.W    R4,[R1,#0x41]

0954        BD70            POP       {R4-R6,PC}

//---------------------------------------------------

0956        F881 2087    STRB.W    R2,[R1,#0x87]

095A        BD70           POP       {R4-R6,PC}

//4-----------------------------------------------------

095C        F8B1 4088    LDRH      R4,[R1,#0x88]

0960        4284            CMP       R4,R0

0962        D103            BNE       Q0000096C

0964        F8A1 0084    STRH.W    R0,[R1,#0x84]

0968        F881 3086    STRB.W    R3,[R1,#0x86]

096C        F881 208A    STRB.W    R2,[R1,#0x8A]

0970        F881 2041    STRB.W    R2,[R1,#0x41]

0974        BD70           POP       {R4-R6,PC}

//-----------------------------------------------------------------

对应的C语言如下

u16 x2,x3,x4;

u8  x5;

x2=0;

x4=4;

x5=uxD0FA8.u841;

x3=1;

switch(x5){

case 0:

if(u16a==0x55AA){

if(uxD0FA8.u886==0){

uxD0FA8.u88A=x4;

uxD0FA8.u1666[0]=u16a;

uxD0FA8.u887=x3;

uxD0FA8.u1688=u16a;

uxD0FA8.u841=3;

}

}else if(u16a==0x55BB){

if(uxD0FA8.u862==0){

uxD0FA8.u88A=x4;

uxD0FA8.u1642[0]=u16a;

uxD0FA8.u863=x3;

uxD0FA8.u1664=u16a;

uxD0FA8.u841=x3;

}

}

break;

case 1:

x2=uxD0FA8.u863;

uxD0FA8.u1642[x2++]=u16a;

uxD0FA8.u1664+=u16a;

if(x2>=15){

uxD0FA8.u841=2;

}else{

uxD0FA8.u863=x2;

}

break;

case 2:

if(uxD0FA8.u1664==u16a){

uxD0FA8.u1642[15]=u16a;

uxD0FA8.u862=x3;

}

uxD0FA8.u88A=x2;

uxD0FA8.u841=x2;

break;

case 3:

x2=uxD0FA8.u887;

uxD0FA8.u1666[x2++]=u16a;

uxD0FA8.u1688+=u16a;

if(x2>=15){

uxD0FA8.u841=x4;

}else{

uxD0FA8.u887=x2;

}

break;

case 4:

x4=uxD0FA8.u1688;

if(x4==u16a){

uxD0FA8.u1666[15]=u16a;

uxD0FA8.u886=x3;

}else{

uxD0FA8.u88A=x2;

uxD0FA8.u841=x2;

}

break;

default:

break;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值