houjzs
驱动牛犊
驱动牛犊
  • 注册日期2002-01-29
  • 最后登录2002-07-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2483回复:4

如何翻译(10)

楼主#
更多 发布于:2002-03-22 19:29
9054 datasheet里的一句话:

PCI Bus is a Little Endian bus (that is, the address is
invariant and data is Lword-aligned to the lowermost
byte lane).如何翻译.
cmdcmd
驱动牛犊
驱动牛犊
  • 注册日期2002-02-08
  • 最后登录2005-02-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-24 06:10
PCI Bus is a Little Endian bus (that is, the address is
invariant and data is Lword-aligned to the lowermost
byte lane).

我认为Endian可以不翻译,直接引用原文,因此可以翻译做:
“PCI总线是一种小Endian总线(也就是说,地址不变且数据是每双字节按照低位字节对齐的)”
[size=6][color=red]I Love You All.[/color][/size]
lz_mao
驱动中牛
驱动中牛
  • 注册日期2001-09-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-03-25 09:23
这句话这样理解起来应该会好一点。
首先,PCI总线是一种Little Endian类型的总线。
其次,对于Little Endian,怎么理解?
基于你所使用的计算机硬件系统,你应当考虑“多字节存储时,字节的存储序列”的问题。在这种情况下,我们有提到了两个规则:Little Endian、Big Endian。

Little Endian的意思是低字节存储在地址的低字节。例如:
一个双字为:Byte3 Byte2 Byte1 Byte0(从高到低)

那么,他们按照Little Endian规则,应当这样被分配到存储空间:
    Base Address+0   Byte0
    Base Address+1   Byte1
    Base Address+2   Byte2
    Base Address+3   Byte3


那么,Big Endian规则则相反。




[编辑 -  3/25/02 作者: lz_mao]
我很笨。
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-02 21:12
说的俺都糊涂了。
对于16进制数0x12345678
如果是32位对齐的那么
大头在后就是的存储方式就是
addr[0]:0x78 addr[1]:0x56 addr[2]:0x34 addr[3]:0x12
小头在后就是
addr[0]:0x12 addr[1]:0x34 addr[2]:0x56 addr[3]:0x78
16位对齐的就是
大头在后就是的存储方式就是
addr[0]:0x34 addr[1]:0x12 addr[2]:0x78 addr[3]:0x56
小头在后就是
addr[0]:0x12 addr[1]:0x34 addr[2]:0x56 addr[3]:0x78
falwind
驱动牛犊
驱动牛犊
  • 注册日期2001-12-21
  • 最后登录2006-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-05-09 18:02
说的俺都糊涂了。
对于16进制数0x12345678
如果是32位对齐的那么
大头在后就是的存储方式就是
addr[0]:0x78 addr[1]:0x56 addr[2]:0x34 addr[3]:0x12
小头在后就是
addr[0]:0x12 addr[1]:0x34 addr[2]:0x56 addr[3]:0x78
16位对齐的就是
大头在后就是的存储方式就是
addr[0]:0x34 addr[1]:0x12 addr[2]:0x78 addr[3]:0x56
小头在后就是
addr[0]:0x12 addr[1]:0x34 addr[2]:0x56 addr[3]:0x78
 

哈哈!guardee你糊涂啦!
32位对齐的时候,little endian应该是反过来才对。
比如:
UINT x = 0x12345678;
BYTE *p = (BYTE *)&x;
那么:
p[0] : 0x78;
p[1] : 0x56;
p[2] : 0x34;
p[3] : 0x12。
游客

返回顶部