早教吧作业答案频道 -->数学-->
学过微机原理的进来下,问下问题才刚看微机原理,里面的地址算法我一直看不懂啊,例如很多题目里都出现类似(268EAH)=55H,(268EBH)=66H,我一直搞不懂这个(268EAH)为什么等于55H啊例如这道题,设
题目详情
学过微机原理的进来下,问下问题
才刚看微机原理,里面的地址算法我一直看不懂啊,例如很多题目里都出现类似(268EAH)=55H,(268EBH)=66H,我一直搞不懂这个(268EAH)为什么等于55H啊
例如这道题,设(DS)=2000H,(BX)=300H,(DI)=400H,(20700H)=1990H
就请这道题解释下为什么(20700H)=1990H
才刚看微机原理,里面的地址算法我一直看不懂啊,例如很多题目里都出现类似(268EAH)=55H,(268EBH)=66H,我一直搞不懂这个(268EAH)为什么等于55H啊
例如这道题,设(DS)=2000H,(BX)=300H,(DI)=400H,(20700H)=1990H
就请这道题解释下为什么(20700H)=1990H
▼优质解答
答案和解析
8086/8088处理器对内存采用分段管理机制.
8086/8088处理器的地址信号线有20根,可以寻址2^20=1M的地址空间,但是它们内部用于存放地址的寄存器(段寄存器、通用寄存器)只有16位,只用一个寄存器进行寻址的话,只可以寻2^16=64K的地址空间,那么怎么来寻1M的空间呢?
就采用了分段管理机制,一个段就是一个寄存器所能寻的空间,就是64K的大小.简单来说就是利用两个寄存器来对1M的空间进行寻址,那么肯定可以了,这两个寄存器一个叫段寄存器、一个叫段内地址偏移寄存器,后者只能联系寻址64K的地址空间,而前者所谓的段寄存器就是放了当前段的首地址,比如地址10000H开始的段,这个段的空间是10000H~1FFFFH,一共是64K的空间,那么用来存放段内地址偏移量的寄存器(假设用BX)BX的取值范围是0000~FFFFH,叫做偏移地址或逻辑地址,也就是相对地址,相对段基址10000H的地址偏差的意思,而段基址寄存器(假设用DS)就是用来放整个段开始的那个地址,即10000H放到DS中,问题出现了,20位的段基址怎么放到16位的段基址寄存器中呢?是这样的,分段机制里面说20位的物理地址(PA)可以用段基址寄存器存放的值(DS中放的数据)与偏移地址(EA,这里是用BX来存放的)进行计算得到,计算公式为PA=段基址寄存器*16+EA,那么在这里为PA=DS*16+BX,所以段开始地址为10000H,那么段寄存器DS中放的就是1000H,DS*16即左移4位后再加上BX就可以对10000H~1FFFFH这64K的内容进行寻址了,如果超过64K的话,就要改变段寄存器里面的值,这就是对存储器的分段管理机制.
知道了分段管理机制,再来看你所提出的问题就比较容易了,(DS)=2000H,(BX)=300H,(DI)=400H这个题目,括号表示取里面的内容,就是数据段寄存器DS中放2000H,基址寄存器BX中放300H,变址寄存器DI中放400H,求对应的物理地址里面的内容.首先我们要根据已知计算出实际的物理地址即PA,再根据物理地址去找里面的内容,先计算PA=DS*16+BX+DI=2000H*16+300H+400H=20700H,题目就是让我们找到物理地址20700H中的内容,而且是让我们读取一个字的内容,就是所说的1990H,实际我们是读取了两个字节的内容,即:20700H中的内容为低字节90H,20701H中的内容为高字节19H,从20700H单元读一个字也就是两个字节的内容就是读了20700H和20701H两个单元的内容,即1990H
所以有(20700H)=1990H.
地址算法的公式就是:PA=段寄存器*16+EA
PA是物理地址,EA是逻辑地址,逻辑地址EA由基址寄存器BX、变址寄存器SI或DI、直接偏移地址给出.即EA=BX+SI/DI+立即数.例题就是基址加变址寻址.
解释完了,不知对你是否有帮助,要想理解透还需要将书里面的寻址方式及寄存器这部分内容仔细看看.
8086/8088处理器的地址信号线有20根,可以寻址2^20=1M的地址空间,但是它们内部用于存放地址的寄存器(段寄存器、通用寄存器)只有16位,只用一个寄存器进行寻址的话,只可以寻2^16=64K的地址空间,那么怎么来寻1M的空间呢?
就采用了分段管理机制,一个段就是一个寄存器所能寻的空间,就是64K的大小.简单来说就是利用两个寄存器来对1M的空间进行寻址,那么肯定可以了,这两个寄存器一个叫段寄存器、一个叫段内地址偏移寄存器,后者只能联系寻址64K的地址空间,而前者所谓的段寄存器就是放了当前段的首地址,比如地址10000H开始的段,这个段的空间是10000H~1FFFFH,一共是64K的空间,那么用来存放段内地址偏移量的寄存器(假设用BX)BX的取值范围是0000~FFFFH,叫做偏移地址或逻辑地址,也就是相对地址,相对段基址10000H的地址偏差的意思,而段基址寄存器(假设用DS)就是用来放整个段开始的那个地址,即10000H放到DS中,问题出现了,20位的段基址怎么放到16位的段基址寄存器中呢?是这样的,分段机制里面说20位的物理地址(PA)可以用段基址寄存器存放的值(DS中放的数据)与偏移地址(EA,这里是用BX来存放的)进行计算得到,计算公式为PA=段基址寄存器*16+EA,那么在这里为PA=DS*16+BX,所以段开始地址为10000H,那么段寄存器DS中放的就是1000H,DS*16即左移4位后再加上BX就可以对10000H~1FFFFH这64K的内容进行寻址了,如果超过64K的话,就要改变段寄存器里面的值,这就是对存储器的分段管理机制.
知道了分段管理机制,再来看你所提出的问题就比较容易了,(DS)=2000H,(BX)=300H,(DI)=400H这个题目,括号表示取里面的内容,就是数据段寄存器DS中放2000H,基址寄存器BX中放300H,变址寄存器DI中放400H,求对应的物理地址里面的内容.首先我们要根据已知计算出实际的物理地址即PA,再根据物理地址去找里面的内容,先计算PA=DS*16+BX+DI=2000H*16+300H+400H=20700H,题目就是让我们找到物理地址20700H中的内容,而且是让我们读取一个字的内容,就是所说的1990H,实际我们是读取了两个字节的内容,即:20700H中的内容为低字节90H,20701H中的内容为高字节19H,从20700H单元读一个字也就是两个字节的内容就是读了20700H和20701H两个单元的内容,即1990H
所以有(20700H)=1990H.
地址算法的公式就是:PA=段寄存器*16+EA
PA是物理地址,EA是逻辑地址,逻辑地址EA由基址寄存器BX、变址寄存器SI或DI、直接偏移地址给出.即EA=BX+SI/DI+立即数.例题就是基址加变址寻址.
解释完了,不知对你是否有帮助,要想理解透还需要将书里面的寻址方式及寄存器这部分内容仔细看看.
看了 学过微机原理的进来下,问下问...的网友还看了以下:
雾凇,俗称“树挂”,是气温过低空气中水汽直接凝华成冰晶。回答32-33题。小题1:我国最著名的雾凇 2020-05-17 …
那什么的周年视差,“当恒星与地球的连线垂直地球轨道半径时”怎么知道一定能垂直啊?为什么可以肯定一定 2020-06-05 …
三角函数解题直角三角形ABC,AB垂直于BC,AB=BC=1CM,AC为斜边,AC上有一个自由移动 2020-06-07 …
定义点P(x0,y0)到直线l:Ax+By+C=0(A2+B2≠0)的有向距离为d=Ax0+By0 2020-07-09 …
有下列两个命题:命题1:两条平行线被第三条直线所截得的内错角的平分线互相平行;命题2:两条直线被第 2020-08-01 …
读大气气温垂直变化曲线示意图,完成题。小题1:图中正确表示大气层气温垂直变化的曲线是()A.①B.② 2020-11-26 …
根据山地垂直地域分异规律。完成1—2题。1、从赤道向较高纬度地区,针叶林带在山地分布的海拔高度[]A 2020-12-05 …
读图5,完成27~30题。小题1:图示箭头中,代表近地面大气主要直接热源的是A.①B.②C.③D.④ 2020-12-18 …
读某地的地质构造示意图,完成16~18题:小题1:a区域的地质构造名称为()A.背斜B.向斜C.地垒 2020-12-27 …
四道建筑制图的判断题直线平行于投影面,其正投影反应实长直线垂直于投影面,其正投影积聚一点直线倾斜于投 2021-01-15 …