免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: testh
打印 上一主题 下一主题

实模式下8086的寻址 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-06-09 10:51 |只看该作者
sanbiangongzi 发表于 2012-06-09 10:00
REALMODE下使用SEG:OFFSET访问地址A, 只要 (SEG


说的对,如果访问地址A是按照这种不定的组合方式确定的话,那确实是有很多种组合。
说到这个问题,我又产生了一问题,根据你说的方式,确定一个地址A有多种组合方式,那么有如下问题:
(1)当需要访问地址A时,是由谁确定的SEG和OFFSET的地址?
(2)是否每次访问地址A时,都会有不同的SEG和OFFSET的组合?
(3)上面的问题(2)中提到的组合是随机的,还是按照某种规律决定的?

论坛徽章:
0
12
发表于 2012-06-09 11:22
1MB的内存空间按照16bit的SEG寄存器来说,SEG寄存器可以寻址64K个地址,但是在转换为物理地址时有需要将这个SEG里存放的地址左移4位,也就是乘以十进制的数字16。在实模式寻址这个问题里,16这个数字有些敏感,因为在另外一个地方也有16这个数字,这个地方就是:每个SEG的长度为16字节。这个16字节是怎么来的呢?因为是1MB的空间,又需要分成64K个段,那么很容就算出来,在这个1MB的空间内,每个段有16字节的长度。规定上说,SEG寄存器里面的那个数值乘以16之后表示段地址,这样可以推断出来,实际上SEG寄存器上存放的地址并不是真实的SEG地址,而是表示SEG的序号,即0-65535,然后按照每个段的长度是16字节,也就是说用SEG的序号乘以16就表示SEG寄存器中指定的序号的段的首地址。
这个问题通过下面连接也可以证实。
http://bbs.pediy.com/showthread.php?t=115101

论坛徽章:
0
13 [报告]
发表于 2012-06-10 18:55 |只看该作者
我的帖子怎么没了?

论坛徽章:
0
14 [报告]
发表于 2012-06-10 19:04 |只看该作者
怎么自动又出来了,不过还是缺了一个我对左移4位的描述的帖子?

论坛徽章:
0
15 [报告]
发表于 2012-06-11 22:09 |只看该作者
段是逻辑的概念。
不管有多少段,都可以想办法使用特定大小的物理内存。比如内存交换。。。

感觉随着技术的进步,一些实质的东西都没封装了,我们站在'前人‘的肩上理解实质,不知道是好还是坏

论坛徽章:
0
16 [报告]
发表于 2012-06-13 09:27 |只看该作者
早回家的男人,讲故事给老婆听;晚回家的男人,编故事给老婆听。

一个人做点好事并不难!我来帮你顶顶!

论坛徽章:
0
17 [报告]
发表于 2012-06-13 09:35 |只看该作者
怪怪虎 发表于 2012-06-11 22:09
段是逻辑的概念。
不管有多少段,都可以想办法使用特定大小的物理内存。比如内存交换。。。

唉              

论坛徽章:
0
18 [报告]
发表于 2012-06-13 15:06 |只看该作者
其实,段寄存器中存放的数值并不是表示指定段的地址,而应该是指定段的序号,即范围是0-65535。
按照1MB内存的空间需要分成65535个段(因为段寄存器是16bit,即最大能表示的数值就是65535),这样计算的话,每个段的长度其实是16字节。这个数字16是一个很重要的数字。上面说的段寄存器左移4位,其实就是乘以16(十进制的16),这样一来,段寄存器的左移4位的含义其实就是:用指定段的序号x每段的长度16字节=指定段的地址,这个地址就是1MB范围内的地址。

论坛徽章:
0
19 [报告]
发表于 2012-06-13 15:08 |只看该作者
这样就确定了CS寄存器的值,但是IP这样的寄存器的值是如何确定的呢?

论坛徽章:
0
20 [报告]
发表于 2012-06-13 16:09 |只看该作者
testh 发表于 2012-06-09 10:51
说的对,如果访问地址A是按照这种不定的组合方式确定的话,那确实是有很多种组合。
说到这个问题,我又产生了一问题,根据你说的方式,确定一个地址A有多种组合方式,那么有如下问题:
(1)当需要访问地址A时,是由谁确定的SEG和OFFSET的地址?
(2)是否每次访问地址A时,都会有不同的SEG和OFFSET的组合?
(3)上面的问题(2)中提到的组合是随机的,还是按照某种规律决定的?


回答问题1: 程序员决定的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP