- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 80x86编程的硬件基础
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2.4 I/O地址空间 端口地址可以是8/16位的: 16位——在I/O指令中,通常由DX指定。 8位——在I/O指令中直接指定端口号 * * 汇编语言程序设计 第2章 80x86硬件基础 三、I/O地址空间 端口地址组成了一个独立于内存的I/O地址空间。 80x86机的I/O地址空间可达64K,即端口地址的范围是0000~FFFFH。 2.4 I/O地址空间 (1) 通过IN、OUT指令,直接访问端口。 (2) BIOS中断调用,利用BIOS提供的I/O子程序。 (3) DOS功能调用,利用DOS提供的I/O功能子程序。 * * 汇编语言程序设计 第2章 80x86硬件基础 主机与外设的信息交换,可以: 2.5 80x86CPU的工作模式* * * 汇编语言程序设计 第2章 80x86编程的硬件基础 一、实模式 二、保护模式 三、虚拟8086模式 8086/8088只能工作在实模式,80x86以上的CPU在实模式下只有低20位地址线起作用,仅能寻址第一个1MB的内存空间。 实模式解决了16位字长的机器寻址20位地址的问题。 * * 汇编语言程序设计 第2章 80x86硬件基础 2.5 80x86CPU的工作模式* 一、实模式 MS-DOS运行在实模式下 实模式的编程要点 采用16位段,段地址与偏移地址均为16位,即使32位80x86 CPU(80386及更高)也只能寻址1MB的内存空间。20位物理地址=段地址×16+偏移地址 CPU总是从地址CS:IP处取指令,EIP的高16位为0。 SS:SP指向堆栈段的栈顶地址,ESP的高16位为0。 在32位80x86 CPU下,程序可以使用32位寄存器和32位操作数,但采用32位寄存器表示偏移地址时,只使用低16位,高16位为0。 * * 汇编语言程序设计 第2章 80x86硬件基础 2.3 存储器组织 80286起得32位80x86 CPU的主要工作模式: (1)解决1MB以上地址空间的寻址问题 (2)提供对程序和数据进行安全检查的保护机制,从而支持多任务处理。 (3)采用分段和分页相结合的内存寻址方式 * * 汇编语言程序设计 第2章 80x86硬件基础 2.5 80x86CPU的工作模式* 二、保护模式 Windows 运行在保护模式下 仍采用“段:偏移地址”的方式,不同的是: * * 汇编语言程序设计 第2章 80x86硬件基础 2.5 80x86CPU的工作模式* 保护模式下寻址方式说明: 16位段寄存器 段选择符 段描述符表 32位偏移地址 32位段地址 + 32位线性地址 16位段寄存器 16位段寄存器 16位段寄存器 16位段寄存器 + 16位段寄存器 + 16位段寄存器 + 16位段寄存器 段选择符 + 16位段寄存器 段描述符表 段选择符 + 16位段寄存器 32位偏移地址 段描述符表 段选择符 + 16位段寄存器 32位段地址 32位偏移地址 段描述符表 段选择符 + 16位段寄存器 32位线性地址 32位段地址 32位偏移地址 段描述符表 段选择符 + 16位段寄存器 32位地址模式的段是“选择器” ,用以在“描述符表中找段的起始地址” 上例中,DS:000002A1,DS确定的2号选择符,由知它对应的物理地址为000002A1=812102A9 * * 汇编语言程序设计 第2章 80x86硬件基础 2.3 存储器组织 例 虚拟8086模式是为了在保护模式下执行8086程序而设置的一种工作模式。即在保护模式下,将EFLAGS中的VM置1,该任务就进入虚拟8086模式。这样32位处理器给每个虚拟8086模式运行的任务模拟一个与真实的8086处理器十分相似的运行环境,使得DOS运用程序可以在Windows系统中运行。 * * 汇编语言程序设计 第2章 80x86硬件基础 2.5 80x86CPU的工作模式* 三、虚拟8086模式 (1)采用与实模式相同的分段模式,即段寄存器是16位段基址,左移4位后与16位的偏移地址相加,得20位物理地址。 (2)采用分页机制。分段产生的20位地址需通过分页机制转换为32位物理地址。 (3)使用特权级3,不能使用特权指令。 * * 汇编语言程序设计 第2章 80x86硬件基础 2.5 80x86CPU的工作模式* 虚拟8086模式的主要特点 小结 1. 80x86的内
原创力文档


文档评论(0)