回 帖 发 新 帖 刷新版面

主题:地址问题

最近看王爽的《汇编语言》,发现在win下的cmd中用debug -a 段地址:偏移量显示的地址都是20位,但是实际地址是32位(用C查看变量地址)。
我不明白为什么会有两套不同的地址系统?
二者如何兼容?
其中的机制是什么?
请赐教,谢谢

此帖转自:[url]http://www.programfan.com/team/team.asp?team_id=781[/url]

回复列表 (共4个回复)

沙发

不好意思说错了
在debug里是-d 段地址:偏移量  查看内存内容

板凳

[quote]偏移量显示的地址都是20位[/quote]

偏移量地址应该是16位(二进制数字),0100H有4个 16进制数字。刚好2个字节
137B:0100,才是20位.137Bh * 10h + 0100h=138B0h (5个 16进制数,一个16进制数表示4位二进制数字,5*4=20)

3 楼

我一开始也像你一样,137B:0100 以为是32位偏移地址.
137B是段地址。我再看《IBM PC ASSEMBLY LANGUAGE AND PROGRAMMING》,上面说 137Bh * 10h + 0100h=138B0h,我才反应过来.

(我也是刚刚学,我一碰倒不明白的问题就用debug乱搞,有病??)

4 楼

那么如何才能访问32位地址呢?

我来回复

您尚未登录,请登录后再回复。点此登录或注册