打印

51单片机是大端寻址吗?

[复制链接]
8727|17
手机看帖
扫描二维码
随时随地手机跟帖
沙发
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)不同端模式的处理器代码移植也必须要考虑端模式的不同

使用特权

评论回复
5
huangqi412| | 2009-7-31 08:30 | 只看该作者

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

使用特权

评论回复
6
lyjian| | 2009-7-31 13:10 | 只看该作者

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

使用特权

评论回复
7
古道热肠| | 2009-7-31 13:29 | 只看该作者

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

使用特权

评论回复
8
渤海三叠浪| | 2009-7-31 13:35 | 只看该作者

自己验证一下 最好

印象还深  

使用特权

评论回复
9
wlq_9| | 2009-7-31 14:01 | 只看该作者

keil

确实是大端的,用byte拼成一个long型的时候如果用指针的话特别要注意.
简单的试一下就知道了:
定一个long a=0x12345678,然后在RAM地址区看一下就知道了.

使用特权

评论回复
10
dandywang| | 2009-8-4 08:51 | 只看该作者
zyboy正解
顶一下

使用特权

评论回复
11
dandywang| | 2009-8-4 08:52 | 只看该作者

有些ARM的大小端是可以自已配置的

使用特权

评论回复
12
yuands| | 2009-8-4 20:57 | 只看该作者
确实是大端的,用byte拼成一个long型的时候如果用指针的话特别要注意.简单的试一下就知道了:定一个long a=0x12345678,然后在RAM地址区看一下就知道了.
wlq_9 发表于 2009-7-31 14:01


这个和单片机无关,这个和编译器有关。

使用特权

评论回复
13
平常人| | 2009-8-4 22:32 | 只看该作者
很久没有玩51了,问个相关的问题:在51中CALL指令要保存返回地址,压栈的顺序是什么样的?这可是一个大小端的问题哦。。。。。。。

使用特权

评论回复
14
wlq_9| | 2009-8-5 08:55 | 只看该作者
单片机只支持大端,而编译器用小端来编译?
那还区分大小端干什么?
编译器是去适应硬件的,不是硬件适应编译器.或者说,大部分编译器都是专门为硬件订制的.

使用特权

评论回复
15
蒋广武| | 2009-8-5 10:10 | 只看该作者
很久没有玩51了

使用特权

评论回复
16
McuPlayer| | 2009-8-5 10:17 | 只看该作者
51没有大小端之说,但Keil C51编译器是大端的。

使用特权

评论回复
17
dwq175| | 2009-8-6 16:50 | 只看该作者
大小端是数据存贮在RAM的排列顺序.
大端0x1234->地址0:12,1:34
小端0x1234->地址0:34,1:12
当c51与pc通讯时就要注意了.

使用特权

评论回复
18
zyboy| | 2009-8-14 10:25 | 只看该作者
单纯从软件的角度理解上远远不能真正理解大小端模式的区别。事实上,真正的理解大小端模式的区别,必须要从系统的角度,从指令集,寄存器和数据总线上深入理解,大小端模式的区别。

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

其实我也不太清楚,不知道是对是错?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

4

帖子

0

粉丝