- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2、 存储器的分段管理 分段后,对存储器的寻址操作不再直接用20位的物理地址,而是采用段地址 + 段内偏移地址的二级寻址方式。 段地址 在8086存储空间中,把16个字节的存储空间称作一节(Paragraph),通常分段时要求各个逻辑段从节的整数边界开始,这样段首地址低4位应该是“0000”,因此就把段首地址的高16位称为“段基址(段地址)” 段地址是无符号的16位二进制数,存放在段寄存器DS、CS、SS或ES中,这些段分别称为数据段、代码段、堆栈段和附加段。 2、 存储器的分段管理 偏移地址 我们把某一存储单元相对于段首地址的偏移量称为偏移地址(也称有效地址EA)。 偏移地址也是无符号的16位二进制数,存放在IP、SP、BX、SI、DI、BP中或直接出现在指令中。 2、 存储器的分段管理 逻辑地址 采用分段结构的存储器中,把通过段地址和偏移地址来表示的存储单元的地址称为逻辑地址,记为: 段地址:偏移地址 逻辑地址是物理地址的一种表示方式,不是唯一的。 例如: 逻辑地址2000H:1300H、2120H:0100H、2100H:0300H表示的是同一个存储单元21300H。 2、 存储器的分段管理 物理地址 物理地址(PA)是存储单元的绝对地址,20位,是CPU访问存储器的唯一的实际地址,每个存储单元对应一个物理地址; 8086的存储空间物理地址范围是00000H~FFFFFH 2、 存储器的分段管理 物理地址由逻辑地址形成 物理地址 = 段地址×10H+偏移地址 CPU中,这个过程由地址加法器完成; 例如,逻辑地址2000H:1300H,所代表的物理地址为: PA = 2000H×10H+1300H = 20000H+1300H = 21300H 微型计算机系统的外部设备各式各样,8086CPU和外部设备之间是通过I/O接口芯片进行联系; 每个I/O芯片上都有一个端口或几个端口,一个端口往往对应于芯片上的一个寄存器或一组寄存器; 微机系统要为每个端口分配一个地址,我们把这个地址叫作端口地址或端口号; 各个端口号具有唯一性; 2.5.3 8086微型计算机系统的I/O组织 I/O端口有两种编址方式: 统一编址 将I/O端口和存储单元统一编址,即把I/O端口也看作是存储单元。 优点:可利用存储器的寻址方式来寻址I/O端口。 缺点:I/O端口占用了存储空间,而且进行I/O操作时,因地址编码较长,导致速度较慢。 独立编址 将I/O端口和存储单元分开编址,即I/O端口空间与存储空间相互独立。 优点:不占用内存空间;使用I/O指令,程序清晰,很容易看出是I/O操作还是存储器操作;译码电路比较简单。 缺点:只能用专门的I/O指令,访问端口的方法不如访问存储器的方法多。 2.5.3 8086微型计算机系统的I/O组织 8086采用独立编址方式,使用A15~A0这16条地址线作端口地址,可访问的I/O端口最多可有64K个8位端口或32K个16位的端口,A19~A16总是为0; 一个8位端口相当于一个存储器字节,分配0000 ~ FFFFH中的一个地址。任何两个相邻的8位端口可以组合成一个16位端口,类似于存储器中的字。 8086中,有专门的指令来访问I/O接口,如输入指令IN,输出指令OUT。 2.5.3 8086微型计算机系统的I/O组织 2.5.4 8086的寄存器结构 寄存器是CPU内部用来存放地址、数据和状态标志的部件。 8086有14个16位寄存器和8个8位寄存器。 按用途可以分为以下几类: 数据寄存器; 指针和变址寄存器; 段寄存器; 指令指针寄存器; 标志寄存器。 1、数据寄存器AX、BX、CX、DX 数据寄存器主要用来存放操作数或中间结果,以减少访问存储器的次数。有: 4个16位的寄存器:AX、BX、CX、DX; 8个8位的寄存器:AH、AL、BH、BL、CH、CL、DH、DL; 这些寄存器均可独立使用。 多数情况下,这些数据寄存器是用在算术运算或逻辑运算指令中,以进行算术逻辑运算。在有些指令中,它们则有特定的用途。 这些寄存器的用法见下表所示。 1、数据寄存器AX、BX、CX、DX 寄存器 一般用法 隐含用法 AX 16位累加器 ①字节乘法中保存积;字乘法中隐含提供一个乘数,并保存积的低16位; ②字节除法中隐含提供被除数;字除法中隐含提供被除数的低16位,并保存商; ③CBW指令中隐含作为目标操作数; ④CWD指令中隐含作为源操作数和目标操作数的低16位; ⑤I/O指令中,保存16位输入/输出数据。 AL AX的低8位 ①字节乘法中隐含提供一个乘数,并保存积的低8位;字节除法中隐含提供被除数的低8位并保存商; ②CBW指令中隐含作为
文档评论(0)