搜索
bottom↓
回复: 11

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

[复制链接]

出0入0汤圆

发表于 2004-11-15 23:33:00 | 显示全部楼层 |阅读模式
比如我有一个int型变量哪种编译器是把高8位放在内存中较低的位置?



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

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2004-11-16 08:47:25 | 显示全部楼层
低字节在低地址。一般都是这样安排的,至少我碰到的8位、32位系统都这样。如果哪个系统不是这样的,请朋友们指点。

出0入0汤圆

发表于 2004-11-16 13:17:02 | 显示全部楼层
好像51的十六位数据是高位在前低位在后,

mov dprt,#2000h

就是20在前,00在后。

出0入0汤圆

 楼主| 发表于 2004-11-16 13:17:36 | 显示全部楼层
keil c51 是高8位在低端内存的



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

出0入0汤圆

发表于 2004-12-3 08:10:51 | 显示全部楼层
mov dprt ,#2000h  是什么??  是不是 dptr 哦??

出0入0汤圆

发表于 2004-12-3 08:26:09 | 显示全部楼层
呵呵,51系列的存放地址好像就是高字节在前,这方面AVR更符合逻辑

出0入0汤圆

发表于 2004-12-3 08:57:07 | 显示全部楼层
不同的内核, 采用大端或小端模式是不同的. 比如ARM就同时支持两种模式...

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

出0入0汤圆

发表于 2004-12-3 09:16:36 | 显示全部楼层
低字节在前,可以从16位寄存器看出来,例子:ADCL和ADC的指针一样,都是0x24,ADCH的指针就是0x25,从这个可以看出来了:低地址在前。

出0入0汤圆

发表于 2004-12-3 09:44:06 | 显示全部楼层
大端小端必须时刻注意...

出0入0汤圆

发表于 2004-12-3 13:03:08 | 显示全部楼层
hotpower有所指:

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

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

出0入0汤圆

发表于 2012-10-19 09:32:57 | 显示全部楼层
ICC AVR的是低8位在低端内存地址,其它的编译器没用过!楼上有说GCC的也是这样,那IAR的会不会不同呢?还是跟硬件有关系的?

出0入0汤圆

发表于 2012-10-19 09:44:08 | 显示全部楼层
处理器模式常说的大小端模式,就是指这种情况。低字节在低地址,就是所谓的小端模式。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 04:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表