- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设成计第2章
图2-20 8086物理地址的形成 每次在需要产生一个20位地址的时候,一个段寄存器会自动被选择,且能自动左移4位再与一个16位的地址偏移量相加,以产生所需要的20位物理地址。每当取指令的时候,选择代码段寄存器CS,再加上由IP所决定的16位偏移量,计算得到要取指令的物理地址。每当涉及到一个堆栈操作时,选择堆栈段寄存器SS,再加上由SP所决定的16位偏移量,计算得到堆栈操作所需要的20位物理地址。每当涉及到一个操作数,选择数据段寄存器DS或附加段寄存器ES,再加上16位偏移量,计算得到操作数的20位物理地址。这里,16位偏移量是包含在指令中的直接地址,或者是某一个16位地址寄存器的值,或者是指令中的位移量加上16位地址寄存器中的值等等,这取决于指令的寻址方式。 8086系统中,存储器的访问如图2-21所示。 在不改变段寄存器值的情况下,寻址的最大范围是64 KB,所以,若有一个任务,它的程序长度、堆栈长度以及数据区长度都不超过64 KB,则可在程序开始时,分别给DS、SS、ES置值,然后在程序中就可以不再考虑这些段寄存器,程序就可以在各自的区域中正常地进行工作,若某一个任务所需的总的存储器长度(包括程序长度、堆栈长度和数据长度等)不超过64 KB,则可在程序开始时使CS、SS、DS相等,程序也能正常工作。 7) 调试与测试寄存器 (1) 调试寄存器。该类寄存器有8个,各32位,如图2-17(a)所示,表示为DR0~DR7。其中DR0~DR3用作线性断点地址寄存器,可保存4个断点地址,DR6用作断点状态寄存器,用来设置若干个状态标志,其中低4位分别表示4个断点处的调试状态。若进入调试状态,由硬件置1;退出调试状态时应由软件清0。另外还有3位,即BT、BS和BD,其中BT是与任务状态段中调试自陷位T相关的状态标志位,BS是与状态标志寄存器中的自陷标志TF相关的状态标志位,BD是当内部电路仿真使用的下一条指令对8个调试寄存器中的任一个进行读/写时,置1。DR7是断点控制寄存器,用来设置控制标志、控制断点的设置、设置条件、断点地址的有效范围以及是否进入异常中断等。DR4~DR5为Intel公司保留。 图2-17 调试与测试寄存器 (a) 调试寄存器;(b) 调试与测试寄存器 (2) 测试寄存器。该类寄存器有4个,各32位,如图2-17(b)所示,表示为TR3~TR7。其中TR3~TR5用于片内Cache测试。TR6~TR7用来控制分页部件中的转换旁视缓冲存储器TLB的工作。TR6作为测试命令寄存器,用来存放测试控制命令,TR7作为数据寄存器,用来存放转换旁视缓冲存储器测试的数据。 8) 浮点寄存器 80486微处理器内部的浮点运算器是用于浮点运算的,其内部设有相应的寄存器,包括8个80位通用数据寄存器,一个48位指令指针寄存器、一个48位数据指针寄存器,一个16位控制字寄存器,一个16位状态字寄存器和一个16位标记字寄存器。 3.总线接口部件 总线接口部件用来与外部主存、外围设备等部件进行数据传送。80486微处理器内部设有高速算术/逻辑运算器、浮点运算器和Cache存储器,配置了外部Cache,这就要求其能与外存、外设高速成批地进行数据传送,故此对总线接口部件的功能有更高的要求。它在内部通过3条32位总线与内部Cache和指令预取部件连接;在外部通过多种电路与系统总线连接,根据优先级别协调数据输入/输出、指令预取、Cache行的填充等工作。为了支持片内Cache的连贯性,配置了总线监视功能。总线接口部件中各部分的功能是: (1) 总线大小(也称为宽度)控制。用来控制数据总线的位数,即按32位、16位或8位进行数据传送。 (2) 奇偶校验控制。数据传送时进行奇偶校验,写操作时产生偶校验,读操作时实施偶校验。如果出错,给出错误信息。 (3) 地址驱动器。提供所有地址信号A31~A2和字节允许信号BE3~BE0的功率驱动,其中高28位地址为双向信号。 (4) 写缓冲存储器。由于外部数据线是32位,为了传送可靠,在接口部件中设有缓冲存储器,以等待总线全部空闲时再进行写入操作。 (5) 数据总线收发器。为32位,用来控制总线数据的接收与发送。 (6) 总线请求序列发生器。也就是总线周期与总线控制电路,用来产生总线周期的时序及控制信号。其中包括成组和非成组传送、总线请求仲裁、浮点运算、中断以及复位等操作所需要的定时控制信号。 (7) 成组传送控制。用来控制内部Cache等部件
原创力文档


文档评论(0)