tiancai_ 发表于 2004-11-15 23:33:00

数据在内存中是高字节在前还是低字节在前

比如我有一个int型变量哪种编译器是把高8位放在内存中较低的位置?



我用过的ICCAVR和GCC都是低8位在较低的位置

dfgeoff 发表于 2004-11-16 08:47:25

低字节在低地址。一般都是这样安排的,至少我碰到的8位、32位系统都这样。如果哪个系统不是这样的,请朋友们指点。

bucker 发表于 2004-11-16 13:17:02

好像51的十六位数据是高位在前低位在后,

mov dprt,#2000h

就是20在前,00在后。

tiancai_ 发表于 2004-11-16 13:17:36

keil c51 是高8位在低端内存的



但是不知道keil出没出AVR的编译器

jackiezeng 发表于 2004-12-3 08:10:51

mov dprt ,#2000h是什么??是不是 dptr 哦??

bailei 发表于 2004-12-3 08:26:09

呵呵,51系列的存放地址好像就是高字节在前,这方面AVR更符合逻辑

songs 发表于 2004-12-3 08:57:07

不同的内核, 采用大端或小端模式是不同的. 比如ARM就同时支持两种模式...

这个问题在多种不同的内核模式的系统通讯上面就比较重要了, 需要转换成相同的顺序...

zhzzh18 发表于 2004-12-3 09:16:36

低字节在前,可以从16位寄存器看出来,例子:ADCL和ADC的指针一样,都是0x24,ADCH的指针就是0x25,从这个可以看出来了:低地址在前。

hotpower 发表于 2004-12-3 09:44:06

大端小端必须时刻注意...

SUN0_LIANG 发表于 2004-12-3 13:03:08

hotpower有所指:

看一下:hotpower的"MCUDEFINE.H"。

要明确BIT,BYTE,INT,LONG关系。

po-shieh 发表于 2012-10-19 09:32:57

ICC AVR的是低8位在低端内存地址,其它的编译器没用过!楼上有说GCC的也是这样,那IAR的会不会不同呢?还是跟硬件有关系的?

wuha 发表于 2012-10-19 09:44:08

处理器模式常说的大小端模式,就是指这种情况。低字节在低地址,就是所谓的小端模式。
页: [1]
查看完整版本: 数据在内存中是高字节在前还是低字节在前