免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8488 | 回复: 17
打印 上一主题 下一主题

大端小端 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-02 12:05 |只看该作者 |倒序浏览
经常看到有人贴C程序,测内存大小端的。
直接查看elf头部可以知道该程序的格式是大还是小。
那么,内存的大小端,跟elf可执行程序格式大小端之间有关系吗?

论坛徽章:
0
2 [报告]
发表于 2009-06-02 12:10 |只看该作者

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
3 [报告]
发表于 2009-06-02 13:13 |只看该作者
大小端是机器决定的,有些机器同时支持大端和小端,可以选择.
elf文件的大小端对于elf本身来说是固定的,如果要在该机器上正确运行,首先得要和该机器的字节序一致(这应该是基本要求)

论坛徽章:
0
4 [报告]
发表于 2009-06-03 06:00 |只看该作者
楼主把因果关系搞颠倒了。
endian取决于CPU,elf头部是去适配它。
有的CPU是little,有的CPU是big。
有的CPU可以用引脚电平来决定endian,或以某指令来切换。

论坛徽章:
0
5 [报告]
发表于 2009-06-04 10:30 |只看该作者
了解了。最近在弄MIPS。
链接上说,不管是大小端,elfread都可以读出elf头,即elf结构有部分是大小端无关的。
那么对于bootload这第一个运行的程序来说,刚启动CPU应该没有初始化,那么bt如何运行?抑或cpu默认是处于大小端中的某一态势,这样bt就可以跑了?

论坛徽章:
0
6 [报告]
发表于 2009-06-09 20:20 |只看该作者
endian指的是数据字节的存放次序。指令是一个字节一个字节读的,bootload和这没关系。

论坛徽章:
0
7 [报告]
发表于 2009-06-09 20:52 |只看该作者

回复 #5 solomoon 的帖子

bootloader也要分大端和小端。mips的5kc,4kc,都是有开关可以调大小端的。

论坛徽章:
0
8 [报告]
发表于 2009-06-09 21:46 |只看该作者
原帖由 beepbug 于 2009-6-9 20:20 发表
endian指的是数据字节的存放次序。指令是一个字节一个字节读的,bootload和这没关系。


怎么会没关系呢?

既然说到 endian,那么就要考虑 big-endian
在 powerpc 这些 big-endian 机器上指令是 4 bytes 的


即使在 x86 这些 little-endian 机器上指令也不完全是一个字节一个字节的读取的

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
9 [报告]
发表于 2009-06-10 01:33 |只看该作者
原帖由 beepbug 于 2009-6-9 20:20 发表
endian指的是数据字节的存放次序。指令是一个字节一个字节读的,bootload和这没关系。

.......当然有关

论坛徽章:
0
10 [报告]
发表于 2009-06-10 07:54 |只看该作者
原帖由 mik 于 2009-6-9 21:46 发表


怎么会没关系呢?

既然说到 endian,那么就要考虑 big-endian
在 powerpc 这些 big-endian 机器上指令是 4 bytes 的


即使在 x86 这些 little-endian 机器上指令也不完全是一个字节一个字节的读取的

1)是不是你把定长指令搅在一起了?指令字上的域的安排是另外一码事。日本搞的那个伪汇编(就是软考的那个,叫什么来着?CASP?),它是从bit0开始安排的。这个我想和endian好像不是一码事。
2)对。你们又要扯到Cache上去了。Cache一来,我就被打败了。Cache是块遮羞布,它把控制器给遮住了。它似乎改变了电脑的基本工作原理。X86里的控制器在读指令时,只能一字节一字节读,因为读了首字节,它才能知道这指令到底有几字节。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP