易码技术论坛

 找回密码
 加入易码
搜索
查看: 229741|回复: 8

关于汇编,有个问题

[复制链接]
发表于 2005-8-17 13:15:00 | 显示全部楼层
这可表现在WQX的ND的逻辑地址,扇区号加一跟偏移量加$4000是同一个逻辑地址,到GGV好象限定了偏移量的范围~
 楼主| 发表于 2005-8-16 12:30:00 | 显示全部楼层
没人回答么
发表于 2005-8-16 13:48:00 | 显示全部楼层
什么的?没见过。
 楼主| 发表于 2005-8-17 08:22:00 | 显示全部楼层
是"简明x86汇编语言教程",就这段没太看懂
事实上,在实模式中,内存比保护模式中的结构更令人困惑。内存被分割成段,并且,操作内存时,需要指定段和偏移量。不过,理解这些概念是非常容易的事情。请看下面的图:

段-寄存器这种格局是早期硬件电路限制留下的一个伤疤。地址总线在当时有20-bit。
然而20-bit的地址不能放到16-bit的寄存器里,这意味着有4-bit必须放到别的地方。因此,为了访问所有的内存,必须使用两个16-bit寄存器。
这一设计上的折衷方案导致了今天的段-偏移量格局。最初的设计中,其中一个寄存器只有4-bit有效,然而为了简化程序,两个寄存器都是16-bit有效,并在执行时求出加权和来标识20-bit地址。
偏移量是16-bit的,因此,一个段是64KB。下面的图可以帮助你理解20-bit地址是如何形成的:

段-偏移量标识的地址通常记做 段:偏移量 的形式。
由于这样的结构,一个内存有多个对应的地址。例如,0000:0010和0001:0000指的是同一内存地址。又如,
0000:1234 = 0123:0004 = 0120:0034 = 0100:0234
0001:1234 = 0124:0004 = 0120:0044 = 0100:0244
作为负面影响之一,在段上加1相当于在偏移量上加16,而不是一个“全新”的段。反之,在偏移量上加16也和在段上加1等价。某些时候,据此认为段的“粒度”是16字节。
发表于 2005-8-17 15:45:00 | 显示全部楼层
PC上的内存很大,不同WQX只有64K寻址/
前面的表示“分页”,后面是这一页的地址。
发表于 2005-8-18 15:17:00 | 显示全部楼层
由于这样的结构,一个内存有多个对应的地址。
不是讲的很清楚了吗?
前面的表示“分页”,后面是这一页的地址。...
 楼主| 发表于 2005-8-19 08:41:00 | 显示全部楼层
我想知道以下内容是什么意思,我是汇编菜鸟
0000:1234 = 0123:0004 = 0120:0034 = 0100:0234
0001:1234 = 0124:0004 = 0120:0044 = 0100:0244
发表于 2005-8-19 11:45:00 | 显示全部楼层
作为负面影响之一,在段上加1相当于在偏移量上加16,而不是一个“全新”的段。反之,在偏移量上加16也和在段上加1等价。某些时候,据此认为段的“粒度”是16字节。
只能这么解释了,已经非常清楚了...
 楼主| 发表于 2005-8-16 11:16:29 | 显示全部楼层 |阅读模式
这几天,看汇编的书,有个问题,请高手帮助一下
0000:1234 = 0123:0004 = 0120:0034 = 0100:0234
0001:1234 = 0124:0004 = 0120:0044 = 0100:0244
以上内容是什么意思
练习题
尝试一下将下面的地址转化为20bit的地址:
2EA8678 26CF:8D5F 453A:CFAD 2933:31A6 5924CCF
694E:175A 2B3C218 728F:6578 68E1:A7DC 57EC:AEEA


这题又怎么做
看到这里,已经搞不懂了
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-25 15:41 , Processed in 0.018831 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表