第2章IBMPC计算机组织.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.内存地址的分段 8086/8088地址总线20根可访问的地址为: 220 1,048,576 1M 2.分段方法 用16位段地址与16位段内地址的迭加形成20位物理地址,放在16位段寄存器内的段地址定义在任意64K字节存储段的起始地址上,段内地址(偏移地址)定义在64K字节存储段内的任意单元。 地址的组合:物理地址 段地址*16D(或10H)+偏移地址,即物理地址等于2进制的16位段地址乘以16(左移4位)加2进制16位偏移地址。为了书写方便一般采用16进制表示地址和数据,则物理地址等于16进制的4位段地址乘以10H(左移1位)加16进制4位偏移地址。 如图2-9所示。 图2-9 物理地址的组合 3.物理地址、段地址、段内地址和逻辑地址 (1)物理地址:与内存单元一一对应的20位2进制(或5位16进制)表示的地址为物理地址。 1MB 00000H ~ FFFFFH 每个物理地址代表一个唯一的内存单元。 (2)段地址:将1MB的内存空间分成长为64K字节的程序区和数据区为段,每个段用1个16位2进制地址表示。 (3)段内地址:(偏移地址或偏移值):16位2进制段内地址为偏移地址。不同段内的偏移地址是存放在不同的寄存器中. (4)逻辑地址:用段地址和偏移地址来表示内存单元的地址为逻辑地址,两地址之间用“:”隔开。常写成: 段地址:偏移地址。 例如: 物理地址为00001H 逻辑地址为0000H:0001H 当物理地址为00001H时,其逻辑地址为0000H:0001H,段地址为0000H段内地址为0001H。 4.逻辑地址与物理地址的换算关系 逻辑地址是段地址和偏移地址的组合表示,物理地址是段地址和偏移地址的迭加表示。 物理地址 段地址*16D(或10H)+偏移地址 逻辑地址 段地址:偏移地址 【例2-7】设逻辑地址为1111H:2222H 则物理地址为:1111H×10H+2222H 13332H 表示:当逻辑地址为1111H:2222H时物理地址为13332H 假设段地址1111H为代码段地址,则1111H存放在代码段寄存器CS中,偏移地址2222H就放在指针寄存器IP中。 5、内存分配方法 例如,某一程序的长度为1020个字节,操作数占510个字节,堆栈段大约用250个字节, 在定义时将代码段长度定为1024D 400H ,数据段长度 512D 200H,堆栈段长度 256D 100H ,系统以节的边界对齐。 假设系统给程序分配的内存区从6100H开始。 代码段起始地址6100 H,代码段的偏移地址为0000~03FFH,即代码段长度为400H, 数据段起始地址6140 H ,数据段的偏移地址为0000~01FFH,即数据段长度为200 H, 堆栈段起始地址6160 H ,堆栈段的偏移地址为0000~00FFH,即堆栈段长度为100H。 例如,某一程序的长度为1020个字节,操作数占510个字节,堆栈段大约用250个字节, 在定义时将代码段长度定为1024D 400H ,数据段长度 512D 200H,堆栈段长度 256D 100H ,系统以节的边界对齐。 假设系统给程序分配的内存区从6100H开始。 代码段起始地址6100 H,代码段的偏移地址为0000~03FFH,即代码段长度为400H, 数据段起始地址6140 H ,数据段的偏移地址为0000~01FFH,即数据段长度为200 H, 堆栈段起始地址6160 H ,堆栈段的偏移地址为0000~00FFH,即堆栈段长度为100H。 所以代码段:6100 H×10H+0000H +0001H 400H个字节(1024个字节) ┇ +03FFH ? 数据段:6140H*10H+0000H +0001H 200 H个字节(512个字节) ┇

文档评论(0)

精品家园 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档