51单片机是大端寻址吗?

[复制链接]
9793|17
 楼主| eagle028 发表于 2009-7-30 21:36 | 显示全部楼层 |阅读模式
如果是请问可以转化成小端寻址吗?
highgear 发表于 2009-7-30 22:47 | 显示全部楼层

8 bit单片机不存在大小端问题

只有16bit, 32bit 数据存储到8-bit存储器时才存在大小端问题
戒指320 发表于 2009-7-30 23:27 | 显示全部楼层

o

就八位,没有什么大端小端寻址的问题,arm里面有这个概念
zyboy 发表于 2009-7-31 00:04 | 显示全部楼层

0点打酱油!

大端,小端不是数据在内存存储顺序的不同,怎么和几位扯上去了。

我一般把51当大端,PC小端,大部分ARM小端

在实际开发中,我发现下面两点要引起注意
 (1) 不同端模式的处理器进行数据传递时必须要考虑端模式的不同
(2)不同端模式的处理器代码移植也必须要考虑端模式的不同
huangqi412 发表于 2009-7-31 08:30 | 显示全部楼层

自己写个INT,然后看看就知道了...

lyjian 发表于 2009-7-31 13:10 | 显示全部楼层

大端寻址小端寻址是什么?

古道热肠 发表于 2009-7-31 13:29 | 显示全部楼层

Keil-C51是大端寻址,SDCC-C51是小端寻址

渤海三叠浪 发表于 2009-7-31 13:35 | 显示全部楼层

自己验证一下 最好

印象还深  
wlq_9 发表于 2009-7-31 14:01 | 显示全部楼层

keil

确实是大端的,用byte拼成一个long型的时候如果用指针的话特别要注意.
简单的试一下就知道了:
定一个long a=0x12345678,然后在RAM地址区看一下就知道了.
dandywang 发表于 2009-8-4 08:51 | 显示全部楼层
zyboy正解
顶一下
dandywang 发表于 2009-8-4 08:52 | 显示全部楼层

有些ARM的大小端是可以自已配置的
yuands 发表于 2009-8-4 20:57 | 显示全部楼层
确实是大端的,用byte拼成一个long型的时候如果用指针的话特别要注意.简单的试一下就知道了:定一个long a=0x12345678,然后在RAM地址区看一下就知道了.
wlq_9 发表于 2009-7-31 14:01


这个和单片机无关,这个和编译器有关。
平常人 发表于 2009-8-4 22:32 | 显示全部楼层
很久没有玩51了,问个相关的问题:在51中CALL指令要保存返回地址,压栈的顺序是什么样的?这可是一个大小端的问题哦。。。。。。。
wlq_9 发表于 2009-8-5 08:55 | 显示全部楼层
单片机只支持大端,而编译器用小端来编译?
那还区分大小端干什么?
编译器是去适应硬件的,不是硬件适应编译器.或者说,大部分编译器都是专门为硬件订制的.
蒋广武 发表于 2009-8-5 10:10 | 显示全部楼层
很久没有玩51了
McuPlayer 发表于 2009-8-5 10:17 | 显示全部楼层
51没有大小端之说,但Keil C51编译器是大端的。
dwq175 发表于 2009-8-6 16:50 | 显示全部楼层
大小端是数据存贮在RAM的排列顺序.
大端0x1234->地址0:12,1:34
小端0x1234->地址0:34,1:12
当c51与pc通讯时就要注意了.
zyboy 发表于 2009-8-14 10:25 | 显示全部楼层
单纯从软件的角度理解上远远不能真正理解大小端模式的区别。事实上,真正的理解大小端模式的区别,必须要从系统的角度,从指令集,寄存器和数据总线上深入理解,大小端模式的区别。

编译器的可以选择大小端模式,只是对于存储器方面,而不是总线,指令集方面。所以认为大小端的选择只和编译器有关是错误的想法。说51没有大小端,也是从系统内部总线等方面去理解,而不是对于数据在内存存储的循序,从数据在内存储存的方向,可以将51看做大端。这点在移植和通信还是很重要的。

其实我也不太清楚,不知道是对是错?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部