. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
主题 : :  对于最大64KB,最小16B的疑问  [待解决] 回复[ 6次 ]   点击[ 578次 ]  
mengdewan
[帖 主] [ 发表时间:2008-12-22 11:56 ] 
荣誉值:2
信誉值:5
注册日期:2008-12-18 16:07
书上说段地址的最大长度为64KB,后面有人提出最小为16B,即16字节
但是我在3.5章看到这样的话“我们可以这样认为,123BH~123B9H这段内存是一个数据段,它的段地址为123BH,长度为10字节”,这跟我们提出的最小16B矛盾吗?
这里实在不明白,还请知道的给解释下
cnhnyu
[第2楼] [ 回复时间:2008-12-29 22:49 ] 
荣誉值:0
信誉值:0
注册日期:2007-10-22 14:47
偏移地址为何不能取0?
偏移地址在0000-ffff之间, 包括了0000和ffff
段的最大为64K可以肯定, 也没有异议的, 最小的话, 看你怎么去理解, 如果一定要求段包含数据的话, 那么最小就是16B, 如果可以不包含任何数据, 那么可以认为是0, 但是有一点可以肯定的是绝对不是1或者2之类的
楼上的说是1B, 这是不正确的, 假设现在的段地址是1000H, 那么下一个最近的段从什么地方开始? 很显然, 最近的应该是1001H,可是我们知道,它们如果表示成实际的物理内存的话, 应该是偏移16位的,现在它们相差1, 都偏移16位之后, 相差16, 也就是16字节

实际上, 你用debug可以看看, 假设cs=13fc, 那么ds也可以等于13fc, es也可以等于13fc, 很显然, 这些段是重叠的, 如果从一个段开始结束到另一个段开始结束, 这样顺次的关系来看的话, 可以认为段的最小长度为0
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved