Chinaunix

标题: 问一个arm汇编问题 [打印本页]

作者: hangtoo    时间: 2006-04-21 10:53
标题: 问一个arm汇编问题
int checksum_v1(int *data)
{
        char i;   //2nd time, "int" replaces "char"
        int sum = 0;
        for(i = 0; i < 64; i++)
                sum += data[i];
        return sum;       
}

上面这段代码,用arm-linux-gcc -S checksum_v1.c 反汇编一次;
然后讲int 代替char,再反汇编一次,将所得的两个文件比较了一下
1st:
        str        r3, [fp, #-20]
.L2:
        ldr        r3, [fp, #-20]
        cmp        r3, #63
        ble        .L5
        b        .L3
.L5:
        ldr        r3, [fp, #-20]
        mov        r2, r3, asl #2
        ldr        r3, [fp, #-16]
        add        r3, r2, r3
        ldr        r2, [fp, #-24]
        ldr        r3, [r3, #0]
        add        r3, r2, r3
        str        r3, [fp, #-24]
        ldr        r3, [fp, #-20]
        add        r3, r3, #1
        str        r3, [fp, #-20]
2nd:
        strb        r3, [fp, #-17]
.L2:
        ldrb        r3, [fp, #-17]        @ zero_extendqisi2
        cmp        r3, #63
        bls        .L5
        b        .L3
.L5:
        ldrb        r3, [fp, #-17]        @ zero_extendqisi2
        mov        r2, r3, asl #2
        ldr        r3, [fp, #-16]
        add        r3, r2, r3
        ldr        r2, [fp, #-24]
        ldr        r3, [r3, #0]
        add        r3, r2, r3
        str        r3, [fp, #-24]
        ldrb        r3, [fp, #-17]
        add        r3, r3, #1
        strb        r3, [fp, #-17]
差别如上,第一次用到str,第二次用到strb
我想问在arm32位环境中,是否strb执行的会比较快点呢?
谢谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2