myadzw 发表于 2011-10-7 11:58:15

实践检测点3.1第一题的后困惑

当AX的值1赋给DS后,鱼版的答案中把它拆成了DS=0000,IP=0010,那么是不是也可以拆成DS=0001,SP=0000呢,我用DEBUG
查看以后,发觉两个地址的值是一样的,那么是不是DS:IP有多少种组合方法,内存地址也有多少个重复的地方,这样会不会造成内存的浪费导致不够用呢?

h18755 发表于 2011-10-7 12:56:04

1+1=2 3-1=2 4-2=2 同样能得到二,我发现您有点二 二十位的物理地址当然可以随便组合,内存怎么会浪费呢? 比如你要访问20000h 当前ds和ip虽然有多种组合,但必需选择一条 可以是2000:0000 也可以是 1999:0010

h18755 发表于 2011-10-7 12:57:07

1+1=2 3-1=2 4-2=2 同样能得到二,我发现您有点二 二十位的物理地址当然可以随便组合,内存怎么会浪费呢? 比如你要访问20000h 当前ds和ip虽然有多种组合,但必需选择一条 可以是2000:0000 也可以是 1999:0010

慢慢走 发表于 2011-10-7 14:10:46

条条大路通罗马
8086的地址总线为20bits,而寄存器为16bits的
所以物理地址就要通过2个寄存器表示,就是DS:IP=DS*10h+IP,(DS:IP是五位十六进制哦)
所以11:0,10:10,1:100,0:110都指向同一块物理地址00110

myadzw 发表于 2011-10-7 18:17:17

明白了,就是说:DS=0000,IP=0010也好,DS=0001,SP=0000也好,最终指向的只有一个内存地址,感谢楼上几位热心的回答。。。
页: [1]
查看完整版本: 实践检测点3.1第一题的后困惑