好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

DOS系统结构汇总.doc

13页
  • 卖家[上传人]:工****
  • 文档编号:432872485
  • 上传时间:2023-08-19
  • 文档格式:DOC
  • 文档大小:177KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、8086CPI如何移植DOS系统DOS的主要版本是基于8086和8088芯片的能力而设计的在讨论 DOS BIOS和 编程时,所有例子都是运行在8086或8088上的(没有包括新芯片扩充的特有性 能)DF(方向标志) TF(跟踪标志)IF (中断标志)方向标志控制着8086的指令在内存拷贝的区域内指定方向跟踪标志将 CPUS 成“单步”方式(调试器用来控制程序的执行)中断标志允许或禁止硬件中断 响应2. 3. 3 80286其更高档的处理器从80286开始,使打破由8088/8086分段式结构设置的1M内存的限制成为可能 CPU可以在实地址方式下运行,即运行与 8086和8088的能力一样的程序程序 员可在实地址方式下编程,也可以在保护模式下编程在保护模式下,建立了一个描述符表这些表包括以前段寄存器信息一一段的基 地址同时加上一些信息,如,是否可以被写入这个段的信息段寄器则是现在 的段选择符,它是描述符表的索引在80286保护模式中,一个描述符表项包含有 24位基地址当80286在保护模 式下运行时,它可以存取多达16M的内存80386和80486继续扩充了内存寻址能力像80286一样,它们可以在保护模式 下编程;然而,现在的描述表项有32位基地址,它允许寻址多达40亿字节(46 字节)的内存。

      为适应这个寻址能力的跳跃,通用、偏移量和标志寄存器现在也有了 32位版本:EAX EBX ECX EDX ESP EBP ESI、EIP 和 EFLAGS 老的 16 位寄存器(例如 AX和BX)仍然存在,只是作为32位寄存器的低16位不仅CPU可以存取4G字节的内存,一个段也可以扩充到全部4G内存中事实上 现在32位结构可以和16位结构一样容易处理,在DOS环境中的80386-/80486- 特定软件已经形成了市场,其中包括两个相互竞争的保护模式环境 DOS保护模式接口( DPM)和虚拟控制程序接口( VCPI)另外,还有一个DOST充程序,该程序允许专门针对 80386-/80486的软件,在 允许存取实地址模式下DOSffi BIOS功能的同时,在保护模式下进行操作 DOS扩充程序允许应用程序在使用 CPC的32位扩充能力的同时,仍能使用DOSffi BIOS 提供的服务这类程序常常比用等同的 16位并且对DOS内存没有强制限制开发出的程序运行得要快2. 3. 4 PU芯片的识别要使用80286、80386和80486 CPU的扩充功能,软件必须知道它运行在其中一 个芯片上,并且要知道在什么芯片上运行。

      有三种解决确定当前芯片问题的方法第一种解决方法是基于80386和80486在加电时用DH寄存器的10 (标志)字节(3或4)来区分它是什么芯片第二种方法是询问用户使用的是哪种芯片第三种方法是从已知的芯片之间的差异来推断出所使用的芯片是哪一种 第一种方法必须包含有已重编程的 BIOS芯片,它超出了大多数程序员的能力, 对用户而言则更是苛刻它也不能区分 80286到8086之间的芯片第二种方法 假设用户知道其机器是什么 CPU在很多情况下,这种假设是无效的第三种方 法需要做的工作比第二种多,但比第一种少,并且是可靠的2. 3. 5数学协处理器In tel 80x86 系列的处理器,从8088到80386只能处理整数运算对很多应用 程序,有整数运算就已足够对于需要浮点运算的应用计算必须由已编好的特定 的程序来处理对大多数应用程序来说,用户不需留意软件计算处理的开销然 而,对于浮点运算较多的数学应用,开销变成了一个问题,这时的数学协处理器 也变成必不可少的了; 一些应用系统甚至没有协处理器就不能运行数学协处理器可以像处理器计算整数那样容易地计算浮点数 不仅如此,它还能和处理器并行地处理所进行的计算工作。

      只有当数据被调入协处理器或从协处理 器中读出数据时,或者激活协处理器期间,才会需要处理器的配合,而在协处理 器完成其功能期间,处理器可以去做另外的属于它自己的工作2. 3. 6数学协处理器的识别In tel公司共有三种可以和主处理器一起工作的协处理器:8087 80287和80387, 但没有80187因为8087也可以和80186和80188一起工作也没有80487,因 为在80486内有内置的80387的等价物要识别数学协处理器并不简单表面上 不匹配的处理器和协处理器可以结合事实上, 8086 CPU和80287就可以组合在一起工作与识别不同CPU的方法相比,识别协处理器的技术要利用不同代的协处理器之间 的细微差别分辨系统中使用的是何种芯片,会由于在系统中根本未使用协处理 器而复杂化(数学协处理器决没有那么便宜一一需要使用协处理器的应用也不普 遍一一使得卖方会自动地将它们放入系统 另一方面,很少有卖方想把它们的产品放在失去和应用程序确定的协处理器百分之一百兼容的地位上折衷的方法 是,在主板上放了一个协处理器的插座,由用户选择是否要安装一个协处理器 要确定当前协处理芯片是哪一种,可将一个位模式写进内存,试图初始化协处理 器芯片。

      然后数学协处理芯片运行一个将协处理器状态字写入内存的指令 如果拥有该芯片,则有一个新值写入内存,如果没有该芯片,则写入的是位模式,而 不是有效的协处理器状 态字当知道有协处理芯片存在后,可以用通过区别协 处理器中断和读控制的方式来区分 8087和80287以及80387这个过程对8087 有效,但对80287或80387无效要区别80287和80387,可以创建出一个正的 无穷大的值(正1除以0),再创建一个负的无穷大的值,然后用协处理器来比 较这两个值,因为80387在两个值之间有区别,而80287则没有区别2. 4内存pc及其兼容机中有四种类型的内存:RO(只读内存)是安装在计算机中的永久内存,它通常保留特定 的机器的BIOS部分RAM(随机存取内存)非永久地保留程序代码和数据扩展内存(extended memory)(超过1M的内存)可以被80286 处理器在保护模式下存取扩充内存(expanded memory)加入到系统但不是直接被处理器映 射的内存部分这部分内存通过特定的扩充内存驱动系统来存取读者可能已经听说过多种 ROM如PROM可编程只读存储器)或EPROM可擦写 可编程只读存储器),所有这些都属于 RO喋型。

      尽管有人反对这样归类,但从 DOSS统程序的标准来看,PROM和其它一系列ROM都表示永久存储器2. 5 I / O管道pc及其兼容机上的标准输入/输出(I /O)设备是键盘、视频监视器和打印机 除了这些标准设备以外,计算机还常配有鼠标以及一个或多个串行接口还以增加诸如触觉感应屏幕(触摸屏)以及各种类型的传感器等一类的用户设备 到PC系统中2. 5. 1键盘PC键盘从不知道从键盘上键入的内容键盘不解释所击的键,只是直接告诉计 算机特定的键被按下或松开键盘并不指定每个键的含意但它指定每个键有一 个唯一的数值(扫描码)这个扫描码被 BIOS传送到计算机去解释当使用者按下某一个键时,键盘通知计算机(通过 Int 09h)那个键已被按下或 松开当处理器执行Int 09h时,BIOS取得计算机瞬时的控制权,读取该键的 扫描码BIOS首先检查像Shift和NumLocI这样的双态键如果双态键被按下 或松开,BIOS修改在内存地址0417h-0418h上的键盘状态位接着,BIOS检查 一些特定的组合键(如 Ctrl-Alt-Del ),如果需要,就运行它们对应的特定的 处理程序如果扫描码还没有当作特殊用途的键(像 NumLocK Ctrl-Alt-Del ,Shift或者 Ctrl等)被“清除”的话,BIOS将它转换成等值的ASCII码。

      如果对该键没有 正确的ASCII字符相对应,它就给出值为零的 ASCII码然后,该ASCII字符,加上它的初始扫描码,就被保存到键盘缓冲区中这个缓冲区足以存放 15个字符和它们的扫描码如果缓冲区已满的话, BIOS就会发出蜂鸣声(以表示键盘缓冲区满)并且去掉此键的扫描码的值在字符到达键盘缓冲区后,就允许运行着的程序(包括 DOS使用它了因为计 算机通常在几分之一秒中就响应,所以填满键盘缓冲区的机会是很小的, 除非计 算机忙于处理其它任务2. 5. 2显示器屏幕PC支持多个视频接口卡的型号,并且每个显示卡都可工作在多个文本或图形模式下,然而,编写一个适应各种显示的程序并没有想象的那么困难,因为 DOS提供了确定显示卡的种类以及当前工作模式的工具显示卡的类型对于大多数编程人员来说,至少应熟悉6种类型的显示卡当然也有其它类型的 显示卡,但通常只用在一些特定的应用中初始的“标准”显示器是单色显示卡(MDA这个系统以其明快的、清晰的字 符以及专业化的外观在计算机的商业应用中得到了很高的评价其它视频卡(CGA EGA HGA MCG和VGA也开始在不同的显示场合能被用户使用表2. 2列出了这些显示卡以及它们开始使用的年代。

      表2. 2显示卡和使用的年代显示卡推出的年份MDA 1981CGA 1982HGA 1982EGA 1984MCGA 1987VGA 1987在对单色显示卡的扩展中,彩色显示卡(CGA使显示彩色成为可能,这一点是 非常重要的CGAK示卡可以显示彩色和图形,但是显示字符不如 MDA勺清晰这个不同的原因在于产生每个字符的点阵象素数 MDA使用9*14的字符框产生字符,而CGA使用8*8的框因为密度的不同,CGA勺字符看起来要比MDA勺字 符“蠢”大力神(Hercules )图形显示卡(HGA,结合单色屏幕的清晰的字符以及彩色 图形卡显示的图形产生了高分辨率的单色显示效果,因此它很快成为结合文本和 图形的标准HGA不能产生彩色,但这个不足对它并不是特别不利随着增强图形卡(EGA彩色图形系统的推出,人们(和商业市场)开始发现, 彩色使他们的工作更加丰富多彩,更加有高度了仅高亮度不足以在屏幕上显示 各种变化,但可以用彩色来强调很多事情虽然只是少量的改进,使用也不广,但随着 IBM PS/2型号25和30的多彩色图 形阵列(MCGA和IBM PS/2型号50、60、80的视频图型阵列(VGA的推出, 显示的标准再一次被重新确定。

      MCGAfe似于CGA但它的分辨率更高MCGA 分辨率是320*400; CGA勺分辨率是320*200 VGA的分辨率(640*480)是EGA(640*350)适当扩充两种显示器中主要的改进则是所有的显示都使用的是模 拟的而非数字的监视器在模拟信号下工作,新的视频系统可以显示256色的调 色板(允许产生多达262144种颜色)内存映射与显示卡在IBM系列中的视频显示卡都使用内存映射 换句话说,即将屏幕上所见的内容 直接映象到被显示卡控制的内存区域中 字符的实现很简单,它被直接写入显示 内存,然后显示卡从显示内存中读出该字符并将它显示到屏幕上在图形模式下, 显示卡将视频内存的数据当作一个在屏幕上控制点的分离着的位的阵列 内存区 域的使用按照显示模式以及不同的显示卡有着很大的区别表2. 3详细列出了每个显示卡的视频缓存的起始位置和长度 表2. 3各显示卡的内存配置显示器类型显示模式缓冲区段地址缓冲区长度显示页数MDA文本B000h4K1CGA文本B800h16K4/ 8图形B800h16K1HGA图形B000h64K1EGA。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.