|
![]() | 作者: wywwolf [wywwolf]
![]() |
登录 |
若某机内存4MB,按字节编址,为了能存取该内存各地址的内容, 起地址寄存器至少需要二进制多少位? 我找到的答案只说是22位,但没说理由 请帮忙解释一下啊,谢谢了 |
地主 发表时间: 07/19 12:11 |
![]() | 回复: 286 [unique] ![]() |
登录 |
内存大小不是主要的,最主要的操作系统的内存访问模式. 对于DOS程序,采用的是实地址模式.而对于Windows方式是保护地址模式. 在实地址模式下.是段地址(16位)+偏移地址(16位).但在访问内存时不是直接二者相加(仍是16位).也不是并起来(变为32位).而是段地址左移4位后和偏移地址相加(所以变成20位). 早期的286地址线只有20根.数据当然也只能表示20位. 22位是不是对. 你可以通过下面方法得到验证: debug d 0000:0100 d 0010:0000 这两个地址显示的数据一样.因为他们俩访问的实地址者是: 00000+0100=00100+0000=00100. |
B1层 发表时间: 07/20 08:17 |
![]() | 回复: windflower [windflower] ![]() |
登录 |
我觉得它这是个理论题目而已, 并不是现实中的寻址方式 20位能寻址1M,22位当然应该是4M了。 |
B2层 发表时间: 07/29 12:56 |
![]() | 回复: 286 [unique] ![]() |
登录 |
风,照你的说法. 四轮车车速可达200公里/小时. 五轮车车速就应该是250公里/小时了. :) |
B3层 发表时间: 07/29 15:47 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号