这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 32位的ARM处理8位数据会累吗?

共5条 1/1 1 跳转至

32位的ARM处理8位数据会累吗?

菜鸟
2007-01-19 00:43:22     打赏
我是刚从51转到ARM来的,因为ARM是32位的,所以一直有这个问题困扰着我,
51执行8位会很舒服的,而处理16位/32位就很累,所以我也想问:
1:ARM处理8位数据会累吗?
2:ARM使用8位的指针处理数据会难过吗?

个人感觉处理8位数据会比32位数据慢,不知道大虾们怎么认为?

请大家帮帮忙啊,让我解开这个困惑,谢谢!



关键词: 32位     处理     数据     会累    

菜鸟
2007-01-19 03:29:00     打赏
2楼

可能会累的.因为ARM是32位机,所以它在处理8位的数据时,需要进行一些屏蔽其它位的操作,所以比操作32位的要慢.

例如,你声明一个char型的变量c,它只有8bit,做一个自加操作,c++,那么编译的代码是先进行加1操作,然后再使用与操作,将高24位清0.以下是来自keil对ADuC7026 ARM7编译的结果:

51: unsigned long int i;
52:
53: unsigned char c;
54:
0x000802AC E92D4000 STMDB R13!,{R14}
55: c++;
0x000802B0 E2833001 ADD R3,R3,#0x00000001
0x000802B4 E20330FF AND R3,R3,#0x000000FF
56: i++;
0x000802B8 E2844001 ADD R4,R4,#0x00000001
57: c--;
0x000802BC E2433001 SUB R3,R3,#0x00000001
0x000802C0 E20330FF AND R3,R3,#0x000000FF
58: i--;
0x000802C4 E2444001 SUB R4,R4,#0x00000001

i是32位的,c是8位的,一看编译结果便知.

由于这个是临时变量,保存在寄存器中,所以需要这样的操作。如果是保存在内存中的变量,由于有LDRB(字节加载)和STRB(字节存储)指令,所以可以不用与操作.

56: c++;
0x000802B8 E59F02F8 LDR R0,[PC,#0x02F8]
0x000802BC E5D01000 LDRB R1,[R0]
0x000802C0 E2811001 ADD R1,R1,#0x00000001
0x000802C4 E5C01000 STRB R1,[R0]
57: i++;
0x000802C8 E59F02EC LDR R0,[PC,#0x02EC]
0x000802CC E5901000 LDR R1,[R0]
0x000802D0 E2811001 ADD R1,R1,#0x00000001
0x000802D4 E5801000 STR R1,[R0]
58: c--;
0x000802D8 E59F02D8 LDR R0,[PC,#0x02D8]
0x000802DC E5D01000 LDRB R1,[R0]
0x000802E0 E2411001 SUB R1,R1,#0x00000001
0x000802E4 E5C01000 STRB R1,[R0]
59: i--;
0x000802E8 E59F02CC LDR R0,[PC,#0x02CC]
0x000802EC E5901000 LDR R1,[R0]
0x000802F0 E2411001 SUB R1,R1,#0x00000001
0x000802F4 E5801000 STR R1,[R0]

由于有些编译器会把变量加载到寄存器中操作,特别是对于循环操作等,因此也会增加类似的与操作指令.所以,有时候为了加快速度,宁愿选用32bit型的数据,而不用其它类型的。

当然,为了节省空间,应尽量选用短的变量。而作为临时变量或者循环变量什么的,由于使用数量少,应尽量使用32位型的寄存器变量。视具体情况而定吧.

[align=right][color=#000066][此贴子已经被作者于2007-1-19 0:13:25编辑过][/color][/align]

院士
2007-01-19 04:15:00     打赏
3楼
computer00虽然你只有几片跟帖,但是现在我开始注意你

菜鸟
2007-01-19 17:35:00     打赏
4楼

非常感谢,我昨天也编译了一下结果,发现都是第二种情况的,就是使用LDRB对8位数据处理,使用LDR对32位处理,所以我以为他们的速度是差不多的,没想到还有第一种情况啊。


菜鸟
2007-03-24 23:59:00     打赏
5楼

这个要顶


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]