. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
主题 : :  段最大64k,那最小多少??  [待解决] 回复[ 56次 ]   点击[ 3028次 ]  
newasmer
[帖 主] [ 发表时间:2007-06-26 15:06 ] 
荣誉值:0
信誉值:0
注册日期:2007-06-26 14:20
段最大64k,那最小多少??
vs9841
[第45楼] [ 回复时间:2009-02-14 13:53 ] 
荣誉值:0
信誉值:0
注册日期:2009-01-17 12:29
计算机内存寻址过程中,通过变化段地址或者偏移地址来找到相应物理内存。物理内存地址=段地址X10H+偏移地址。通过这个公式可以看出,如果不改变段地址,仅是通过变化偏移地址,偏移地址每增加1,可以寻找一个字节数据。所以给定段地址后,CPU可以寻找[段地址X10H + 0000]至[段地址X10H+FFFF]区间的物理内存,这一段的物理内存正好是64KB。也就是说给定段地址,CPU仅通过变化偏移地址,最大可以查找64KB内存。如果多于64KB内存,就需要变化段地址。而段地址每增加1,就相当于物理内存地址向后移动16字节。所以大家总是说段地址是16的倍数,这个倍数是针对物理地址来说。如段地址为0,偏移地址为0,就是指在物理地址为0位置,而段地址由零变为1。就意味在物理地址中向后移动16个字节的位置,即跨跃了16个字节。而在计算机表示段地址或者物理地址或者偏移地址都为整数。所以一个段地址最小可以从0开始,向后顺序加1的方式增加。每增加一次相当于跨过物理地址的16个字节。
============================================
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved