. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  [分享 ]一个段的大小可以8byte 是否正确 以及一个段的 最小值是多少!!!  [待解决] 回复[ 3次 ]   点击[ 381次 ]  
zhenglxd
[帖 主]   [ 发表时间:2009-04-16 13:18 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
这题蛮搞的不过我一向比较重基础所以一会搞懂了 呵呵!
我认为是错的

理由 段的范围是受 ip影响的 ip最大为ffff也就是 一个段最大范围是64KB 这个段是指物理地址的段
物理地址的段 其 实物 是存放在内存空间中的内存单元
而一个内存单元 的容量是一个byte(8位2进制数。2位16进制数)
而8086 的cpu是16位的,所谓16位 就是 他可以一次 存放 16个(位)内存单元的信息
内存的编号 每一个段都是由0~F来编的,而内存中具体一个段的信息
必然是由 16个 内存单元组成 ,也就是16个 (2位16进制数)
这个是最小段了,并且每个其他段都是以这个形式存放的,
他的大小是 16×8(bit)= 16个byte(字节)

所以 一个段的大小 最小也要是16个byte

并且一个段 大小只可能是 16byte的倍数 这个是受到cpu所能处理的信息的位数所影响的


其实也就是n位机的一个段大小 最小为N byte
因为说白了 也就是cpu中信息 存放读取能力而已
zhenglxd
[第1楼]   [ 回复时间:2009-04-16 16:54 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
补充下 我看到 3.5数据段的时候 王爽说 123B0H~123B9H这段内存是一个数据段,它的段地址是123BH
长度为10byte
按照 段 作为数据段的理解 逻辑上 一个段的最小长度似乎是1

但是题目中的段 到底是指 寄存器的段 还是逻辑数据的段?
个人认为 题目出的有些模棱两可了,不过题目是第二章的所以不应该用第三章的知识点去回答。
数据段只是逻辑上的物理地址编号而已,实际内存是不分段的,但是在16位的寄存器中
最小段 就是16位,个人认为 这个段是 16位寄存器中 一段实体 内存单元的长度
mess
[第2楼]   [ 回复时间:2009-04-16 22:32 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
我觉得从当下的书上知识来判断,段的最小值是16字节。
即段地址相差1,物理地址相差16Byte。

比如补充的123B0H~123B9H这段内存是一个数据段,段地址都是123BH,下一个段地址至少也是123CH。
zhenglxd
[第3楼]   [ 回复时间:2009-04-17 09:56 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
我还是觉得 题目没有出清楚

首先 内存空间是一组连续的内存单元的集合,他在物理上没有分段的。
分段是逻辑上的
从人的角度看 任何连续的2个内存单元都都可以看作一段
从cpu的角度来看 任何一个所谓 "段" 都必须是16字节的, 偏移地址表现了这个段的最大长度或者说大小
他的大小是64KB 但是这64KB其实是由 其他细分的小段来组成的,其中不可分割的段不能再细分的段,就是最小段了 比如0000:0~0000:F 这16个连续的物理地址 被cpu划分成最小的一段了 
以人的角度 从物理地址来看 0:0~0:7可以是一段, 0:8~0:F也可以是一段吧
但是到cpu里 这2个地址实际就是一段 (0:0是不合法的我仅仅是为了描述问题简单比喻而已)
这个是cpu 管理内存的方式  
所以说 此题 模棱两可!!!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved