主题:地址问题
timonkun
[专家分:110] 发布于 2006-07-21 16:38:00
最近看王爽的《汇编语言》,发现在win下的cmd中用debug -a 段地址:偏移量显示的地址都是20位,但是实际地址是32位(用C查看变量地址)。
我不明白为什么会有两套不同的地址系统?
二者如何兼容?
其中的机制是什么?
请赐教,谢谢
此帖转自:[url]http://www.programfan.com/team/team.asp?team_id=781[/url]
回复列表 (共4个回复)
沙发
timonkun [专家分:110] 发布于 2006-07-21 16:51:00
不好意思说错了
在debug里是-d 段地址:偏移量 查看内存内容
板凳
henrya2 [专家分:590] 发布于 2006-07-22 18:18:00
[quote]偏移量显示的地址都是20位[/quote]
偏移量地址应该是16位(二进制数字),0100H有4个 16进制数字。刚好2个字节
137B:0100,才是20位.137Bh * 10h + 0100h=138B0h (5个 16进制数,一个16进制数表示4位二进制数字,5*4=20)
3 楼
henrya2 [专家分:590] 发布于 2006-07-22 19:02:00
我一开始也像你一样,137B:0100 以为是32位偏移地址.
137B是段地址。我再看《IBM PC ASSEMBLY LANGUAGE AND PROGRAMMING》,上面说 137Bh * 10h + 0100h=138B0h,我才反应过来.
(我也是刚刚学,我一碰倒不明白的问题就用debug乱搞,有病??)
4 楼
timonkun [专家分:110] 发布于 2006-07-22 23:16:00
那么如何才能访问32位地址呢?
我来回复