首页
社区
课程
招聘
[求助]超简单的汇篇问题
发表于: 2008-8-24 22:22 4748

[求助]超简单的汇篇问题

2008-8-24 22:22
4748
数据123456789H
这里哪个是高位? 哪个是低位?
00401000
004010CD
这2个地址哪个是高地址 哪个是低地址?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
问题不重要. 请继续看下一章节
一个月后再来看这个问题
2008-8-24 22:45
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
3
分清楚这个有意义?
2008-8-24 22:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
123456789H 36位 >  32位 -_-"
地址肯定是大的高地址,小的是低地址,所谓的小端大端模式只是对数据的存储方式而言的。。。
2008-8-24 22:58
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
OllyDBG 入门系列(四)-内存断点
作者:CCDebuger

      .............我们知道“GAME”有四个字节,即 ASCII 码为“47414D45”。我们看一下数据窗口中的情况:
0040339C     47 41 4D 45 00 00 00 00 00 00 00 00 00 00 00 00     GAME............
大家可以看出来内存地址 40339CH 到 40339FH 分别按顺序存放的是 47 41 4D 45。
............系统存储的原则为“高高低低”,即低字节存放在地址较低的字节单元中,高字节存放在地址较高的字节单元中。比如一个字由两个字节组成,像这样:12 34 ,这里的高字节就是 12 ,低字节就是 34。

有一个疑问:数据47414D45,从47到45是按照高字节到低字节的顺序,但是内存地址 40339CH 到 40339FH 分别按顺序存放的是 47 41 4D 45,内存地址 40339CH 到 40339FH 不是从低地址到高地址的顺序吗?这样系统存储就不是按照“高高低低”的原则,而是按照“高低低高”的原则了........
2008-8-25 08:51
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
6
所以版主说问这个有什么意义

byte word dword
2008-8-25 08:57
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
重大意义  嘎嘎`````版主都来灌水了啊  哈哈```

也许一个小小的知识就会解决一个很大的问题
一个很大的问题 就是因为一个小小的知识的不理解而已 而得不到解决```
所以不要小看每一个知识搂````
2008-8-25 10:15
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=yyxljy;500814]有一个疑问:数据47414D45,从47到45是按照高字节到低字节的顺序,但是内存地址 40339CH 到 40339FH 分别按顺序存放的是 47 41 4D 45,内存地址 40339CH 到 40339FH 不是从低地址到高地址的顺序吗?这样系统存储就不是按照“高高低低”的原则,而是按照“高低低高”的原则了........QUOTE]

你所说的是OD的数据窗口把?? 数据窗口当然和数据一样拉```从高字节到低字节搂```排列当然一样
楼主不要钻牛角尖````
2008-8-25 10:24
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
9

1234
2008-8-25 10:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这个说法是正确的。最左边的就是最高字节,最右边就是最低字节,只不过是不同操作系统的存储方式不一样而已。windows用的是small-endian,高字节放在低地址,低字节放在高地址,而UNIX则是big-endian--高字节放高地址,低字节放低地址。但是要清楚,这里说的是同一个32位数据里的各字节存储顺序。
2008-8-25 10:50
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不要误导人家新手

windows NT/XP/2000/用的是<逆序>small-endian,高字节放在高地址,低字节放在低地址.

而UNIX则是big-endian--高字节放高地址,低字节放低地址。... 这个我就不确定了````
2008-8-25 11:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不好意思,楼主说的对。我是自己也没完全搞清楚所以混淆了,small-endian(更标准的称呼为little-endian)的原则就是“高高低低”,高字节放在高地址,低字节放低地址。但是最左边是高字节最右边是低字节这个是没问题的。
2008-8-26 18:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
另外我想说一下就是big-endian和small-endian这是针对同一个数据来说的。比如说在windows系统中,假如12345678H是一个DWORD型的数据,那么在16进制窗口中看到的就是78 56 34 12,但如果是四个char型的数据,那在内存里看到的就是12 34 56 78。所以说楼主这个解释是不对的。数据47414D45不是一个值,而是单独的四个字节(GAME),所以按顺序存放的当然是47 41 4D 45,但是如果这是一个DWORD值(47414D45=1195461957),你在16进制编辑器里看到的就是45 4D 41 47。而不是因为OD的关系
2008-8-26 18:15
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
看了2遍 大概理解了````谢谢 梁大叔
2008-8-27 10:55
0
游客
登录 | 注册 方可回帖
返回
//