




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲:李笑平,计算机病毒原理及防治,北京邮电大学出版社,磁盘结构与组织,第2章 计算机病毒的相关DOS基本系统知识,DOS的组成、启动及内存分配,中断及其处理过程,.COM文件和.EXT文件结构和其加载过程,一个简单的引导程序,1、软盘结构与组织,软盘的结构和存储方式磁盘在使用前必须“格式化”,使其制成标准格式,使之符合DOS系统的规定。格式化时,以磁盘中心为原点,把磁盘表面划分成若干同心圆,称为磁道,3.5英寸的软盘被划分为079共80个磁道,每个磁道又分了18或9个扇区。每个扇区由4部分组成:标识号、间隙、数据、间隙。每扇区可存储512个字节。对双面盘,磁头编号为01,磁道编号079,扇区编号118,共有2880个扇区,共可存储1,474,560B。,2.1 磁盘结构与组织,1、软盘结构与组织,物理扇区和逻辑扇区物理扇区:指某个扇区在磁盘上的绝对位置,由驱动器号、面号、磁道号、扇区号4个参数组成。逻辑扇区:指一张盘片上的所有扇区按扇区的访问顺序进行统一顺序编号,这个编号就称为逻辑扇区或相对扇区。逻辑扇区与物理扇区的换算公式:,2.1 磁盘结构与组织,逻辑扇区号十进制(道号总面数面号)每道扇区数扇区号系统隐藏扇区数1,软盘的逻辑扇区与物理扇区的换算关系:,逻辑扇区号十进制(道号2面号)18扇区号1,2.1 磁盘结构与组织,1、软盘结构与组织,DOS磁盘组织引导扇区 引导扇区位于逻辑0扇区处,由F程序格式化磁盘时形成。引导扇区的主要功能是完成DOS系统的启动。由磁盘基本输入输出参数块、磁盘基数表、引导记录程序3部分组成。文件分配表 文件分配表(FAT)从逻辑1扇区开始,它存放每个文件在磁盘上分布的信息,文件分配表是DOS的一个重要的数据结构,它可以用来登记文件区中所有磁盘簇号的分配使用情况,磁盘上有两个完全相同的文件分配表:FAT1、FAT2,FAT2是FAT1的备份,是为防止FAT1被破坏而准备的。,2.1 磁盘结构与组织,1、软盘结构与组织,DOS磁盘组织文件目录表 文件目录表(FDT)记录根目录下每一个磁盘文件(或子目录)的文件名、扩展名、生成时间、文件长度等信息。数据区 除上述3个区外,剩下的磁盘空间都用来存储程序和数据,称为数据区。,2.1.2 硬盘结构及数据组织:硬盘结构,绝大多数硬盘在结构上都是温彻斯特(Winchester)盘,其核心就是:磁盘片被密封、固定并且不停高速旋转,磁头悬浮于盘片上方沿磁盘径向移动,并且不和盘片接触,2.1 磁盘结构与组织,低级格式化与硬盘的基本参数对于一块新硬盘,低级格式化的过程已经由生产厂家在产品出厂前完成了低级格式化的主要目的是将盘面划分成磁道、扇区和柱面,2.1.2 硬盘结构及数据组织:硬盘结构,2.1 磁盘结构与组织,基本INT 13H调用BIOS INT 13H调用是BIOS提供的磁盘基本输入输出中断调用,它可以完成磁盘(包括硬盘和软盘)的复位、读写、校验、定位、诊断、格式化等功能,完全不用考虑被操作硬盘安装的是什么操作系统它使用的就是CHS寻址方式最大只能访问8GB左右的硬盘,2.1.2 硬盘结构及数据组织:硬盘结构,2.1 磁盘结构与组织,现代硬盘结构简介改用等密度结构生产硬盘,外圈磁道的扇区比内圈磁道多硬盘不再具有实际的3D参数寻址方式也改为线性寻址,即以扇区为单位进行寻址现代大容量硬盘一般采用LBA(Logic Block Address)线性地址来寻址,以替代CHS寻址。在LBA方式下,系统把所有的物理扇区都按某种方式或规则看做是一线性编号的扇区,即从0到某个最大值方式排列,这样,只用一个序数就能确定一个唯一的物理扇区。这就是线性地址扇区的由来,显然线性地址是物理扇区的逻辑地址,2.1.2 硬盘结构及数据组织:硬盘结构,2.1 磁盘结构与组织,扩展INT 13H虽然现代硬盘都已经采用了线性寻址,但是由于基本INT 13H的制约,使用BIOS INT 13H接口的程序,如DOS等还只能访问8G以内的硬盘空间。为了打破这一限制,Microsoft等几家公司制定了扩展INT 13H标准(Extended INT 13H),采用线性寻址方式存取硬盘,所以突破了8G的限制,而且还加入了对可拆卸介质(如移动硬盘、优盘)的支持,2.1.2 硬盘结构及数据组织:硬盘结构,2.1 磁盘结构与组织,分区与高级格式化硬盘在使用时,是按照不同的区域存储数据的,硬盘分区就是划分区域的过程。划分好的每一个区域都称作一个分区,最多可以划分为四个主分区。这项工作由分区程序来完成,通常使用FDISK或磁盘管理工具软件在分区的过程中,分区程序向0柱面0磁头1扇区写入主引导记录MBR(Master Boot Record)和分区记录表DPT(Disk Partition Table),并建立一个分区表链,向所有的逻辑驱动器写入链表记录。硬盘的分区格式常用的分区格式有四种:FAT16、FAT32、NTFS和Linux,其中使用最多的是FAT16和FAT32硬盘分区后还不能直接使用,要在每个分区内建立完整的存储系统后才能正常使用。建立存储系统的工作一般由FORMAT程序来完成,这个过程称为高级格式化高级格式化的目的是在分区内建立分区引导记录DBR(DOS Boot Record)、文件分配表FAT(File Allocation Table)、文件目录表FDT(File Directory Table)和数据区DATA,2.1.2 硬盘结构及数据组织:硬盘结构,2.1 磁盘结构与组织,2.1.2 硬盘的数据结构,主引导扇区的组成主引导扇区(Boot Sector)也就是硬盘的第一个扇区(0柱面0磁头1扇区)主引导记录(Master Boot Record,MBR)主分区表即磁盘分区表(Disk Partition Table,DPT)引导扇区标记(Boot Record ID/Signature)完成系统主板BIOS向操作系统交接的重要入口,主引导扇区结构图,2.1 磁盘结构与组织,2.1.2 硬盘的数据结构,硬盘主分区表结构简介,2.1 磁盘结构与组织,2.1.3 扩展分区与扩展MBR简介,通过主引导记录定义的硬盘分区表,最多只能描述4个分区微软采用虚拟MBR的技术用以描述分区的扇区形成一个“分区链”,通过这个分区链,就可以描述所有的分区,2.1 磁盘结构与组织,2.1.3 扩展分区与扩展MBR简介,主分区、扩展分区、逻辑驱动器及其关系,2.1 磁盘结构与组织,2.1.3 扩展分区与扩展MBR简介,扩展分区和逻辑盘,2.1 磁盘结构与组织,2.1.3 扩展分区与扩展MBR简介,3主分区(其中一个用作扩展)的磁盘结构图,2.1 磁盘结构与组织,一个3主分区的磁盘结构,扩展分区表链接示意图,文件系统简介,当磁盘被格式化之后,文件系统需要用到一些特殊的区域来组织它本身的数据:主引导记录(Master Boot Record,MBR)磁盘分配表(Disk Partition Table,DPT)操作系统引导记录(DOS Boot Record,DBR)文件分配表(File Allocation Table,FAT)文件目录表(File Directory Table,FDT)数据区,文件系统,FAT32 DBR,DBR区(DOS Boot Record) 引导扇区,文件系统,FAT16 DBR,FAT12和FAT16中的DBR与FAT32中的DBR的基本含义类似,只是相关偏移量和参数意义有小的差异,文件系统,保留扇区,在FAT文件系统DBR的偏移0x0E处,用2个字节存储保留扇区的数目。所谓保留扇区(有时候也称作系统扇区、隐藏扇区),是指从分区DBR扇区开始的仅为系统所有的扇区,包括DBR扇区。在FAT16文件系统中,保留扇区的数据通常设置为1,即仅仅DBR扇区。而在FAT32中,保留扇区的数据通常取为32FAT32中的保留扇区除了磁盘总第0扇区用作DBR,总第2扇区(Windows 98系统)或总第0xC扇区(Windows 2000/XP)用作OS引导代码扩展部分外,其余扇区都不参与操作系统管理与磁盘数据管理,通常情况下是没作用的操作系统之所以在FAT32中设置保留扇区,是为了对DBR作备份或留待以后升级时用。FAT32中,DBR偏移0x32占2字节的数据指明了DBR备份扇区所在,一般为0x06,即第6扇区。当FAT32分区DBR扇区被破坏导致分区无法访问时,可以用第6扇区的原备份替换第0扇区来找回数据,文件系统,FAT16 存储原理,当把一部分磁盘空间格式化为FAT文件系统时,FAT文件系统就将这个分区当成整块可分配的区域进行规划,以便于数据的存储FAT16是Microsoft较早推出的文件系统,具有高度兼容性,目前仍然广泛应用于PC机尤其是移动存储设备中,文件系统,FAT16的组织形式,FAT16 存储原理,FAT表记录了磁盘数据文件的存储链表(簇号链表)FAT表以“F8 FF FF FF”开头,此4字节为介质描述单元,并不参与FAT表簇链关系。小红字标出的是FAT扇区每2字节对应的簇号相对偏移0x40x5为第2簇(顺序上第1簇),为“FF FF”,表示存储在第2簇上的文件/目录是个小文件,只占用1个簇便结束了,文件系统,FAT32 存储原理,FAT32是个非常有效的文件系统,FAT32依然占据着Microsoft Windows文件系统中重要的地位FAT32最早是出于FAT16不支持大分区、单位簇容量大以至于空间急剧浪费等缺点设计的,文件系统,FAT32分区的基本构成,NTFS文件系统,NTFS是一个比FAT更复杂的系统。在NTFS中,磁盘上的任何事物都为文件NTFS的BPB参数NTFS的引导扇区也是完成引导和定义分区参数与FAT分区不同的是,FAT分区的BOOT记录正常,即使文件不正确,也显示分区没有错误,而NTFS分区的BOOT不是分区正常的充分条件,它要求必须主文件表MFT(Master File Table)中的系统记录如$MFT等正常该分区才能正常访问,文件系统,NTFS文件系统,主文件表MFT 与文件记录在NTFS中,所有存储在卷上的数据都包含在文件中,包括用来定位和获取文件的数据结构、引导程序和记录这个卷的记录(NTFS元数据)的位图,这体现了NTFS的原则:磁盘上的任何事物都为文件在NTFS中,卷中所有存放的数据均记录在一个叫做MFT的文件记录数组中,称为主文件表(Master File Table),MFT是由高级格式化产生的。而MFT由文件记录(File Record)数组构成,文件系统,NTFS文件系统,文件记录的大小一般是固定的,不管簇的大小是多少,文件记录大小一般为1KB文件记录在MFT文件记录数组中物理上是连续的,且从0开始编号,所以,NTFS是预定义文件系统,文件系统,NTFS文件系统,元数据与元数据文件MFT仅供系统本身组织、架构文件系统使用,这在NTFS中称为元数据(Metadata,是存储在卷上支持文件系统格式管理的数据,不能被应用程序来访问,它只能为系统提供服务)。其中最基本的前16个记录是操作系统使用的非常重要的元数据文件元数据文件的名字都以“$”开始,所以是隐藏文件,文件系统,NTFS文件系统,文件系统,NTFS对元数据文件的备份,NTFS文件系统,文件和目录记录NTFS将文件作为“属性、属性值”的集合来处理文件数据就是未命名属性的值,其他文件属性包括文件名、文件拥有者、文件时间标记等每个属性由单个的流(Stream)组成,即简单的字符队列NTFS并不对文件进行操作,而只是对属性流进行读写NTFS提供对属性流的各种操作:创建、删除、读取(字节范围)以及写入(字节范围)读写操作一般是针对文件的未命名属性的,对于已命名的属性则可以通过已命名的数据流句法来进行操作文件属性列表在元数据文件$AttrDef中预定义(一般有一个未命名流,为缺省流,未命名流只能有一个,而命名流可以有多个,NTFS支持多流文件),文件系统,NTFS文件系统,一个文件通常占用一个文件记录。但当一个文件具有很多项属性值或很零碎的时候,就可能占用一个以上的文件记录。这种情况下,第一个文件记录是其基本的文件记录,存储有该文件需要的其他文件记录的位置。NTFS的文件夹只是一个简单的文件名和文件引用号的索引,如果目录列表小于一个记录的长度,那么该文件夹的所有信息都存储在主文件表的记录中。对于大于记录长度的文件夹则使用B+树进行管理,并用一个指针指向一个外部簇,该簇用来存储那些MFT内存储不了的文件夹的属性,文件系统,NTFS文件系统,常驻属性与非常驻属性当一个文件很小时,其所有属性和属性值都可以存放在MFT的文件记录中。当属性值能直接存放在MFT中时,该属性就称为常驻属性(Resident Attribute)有些属性总是常驻的,这样NTFS才可以确定其他非常驻属性。例如,标准信息属性和根索引就总是常驻属性小文件和文件夹(典型的如1023字节或更少)将全部存储在文件的MFT记录里,文件系统,NTFS文件系统,如果属性值能直接存放在MFT中,那么NTFS对它的访问时间将大大缩短。NTFS只需访问磁盘一次,即可获得数据,而不必像FAT文件系统那样,先在FAT表中查找文件,再读出连续分配的单元,最后找到文件的数据小文件或小目录的所有属性,均可以在MFT中常驻,文件系统,NTFS文件系统,文件LittleFile.txtLittleFile.txt的属性用NFI查看文件,文件系统,NTFS文件系统,如果目录列表小于一个文件记录的长度,小目录的索引根属性包括其中所有文件和子目录的索引,那么,该文件夹的所有信息都存储在主文件表的记录中大文件或大目录的所有属性,就不可能都常驻在MFT中如果一个属性太大而不能存放在MFT文件记录中,NTFS将从MFT之外分配区域。这些区域通常称为一个运行(Run)或一个盘区(Extent),它们可用来存储属性值,如文件数据如果以后属性值又增加,那么NTFS将会再分配一个运行值存储在运行中而不是在MFT文件记录中的属性称为非常驻属性(Nonresident Attribute),文件系统,大文件的非常驻属性,NTFS文件系统,文件系统,大目录的MFT记录,NTFS文件系统,逻辑簇号、虚拟簇号与数据定位Windows以簇号来定位文件在磁盘上的存储位置,在FAT格式的文件系统中,有关簇号的指针包含在FAT表中,在NTFS中,有关簇号的指针则包含在$MFT及$MFTMirr文件中NTFS使用逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual Cluster Number,VCN)来对簇进行定位,文件系统,非常驻数据属性的VCN,NTFS文件系统,当该文件含有超过2个运行时,则第三个运行从VCN7开始,数据属性头部含有前两个运行VCN的映射,这便于NTFS对磁盘文件分配的查询。为了便于NTFS快速查找,具有多个运行文件的常驻数据属性头中包含了VCN-LCN的映射关系,文件系统,NTFS文件系统,NTFS通过MFT访问卷的过程:(1)装载该卷;(2)从文件记录的数据属性中获得VCN到LCN的映射信息(3)打开几个元数据文件的MFT记录,并打开这些文件属性列表虽然数据属性常常因太大而存储在运行中,但是其他属性也可能因MFT文件记录没有足够空间而需要存储在运行中另外,如果一个文件有太多的属性而不能存放在MFT记录中,那么第二个MFT文件记录就可用来容纳这些额外的属性(或非常驻属性的头)在这种情况下,一个称作“属性列表”(Attribute List)的属性就加进来。属性列表包括文件属性的名称和类型代码以及属性所在MFT的文件引用属性列表通常用于太大或太零散的文件,这种文件因VCN-LCN映射关系太大而需要多个MFT文件记录。具有超过200个运行的文件通常需要属性列表,文件系统,2.2.1 系统启动过程简介,系统启动过程主要由以下步骤组成(以硬盘冷启动为例):开机,系统BIOS加电自检读主引导扇区MBR读取激活分区DBR操作系统引导代码引导系统并读取操作系统初始化文件,2.2 计算机的启动过程,2.2.2 DOS引导程序,DOS引导程序所作的检测、初始化动作如下:调整堆栈位置修改并用修改后的磁盘参数表来复位磁盘系统计算根目录表的首扇区的位置及IO.SYS的扇区位置读入根目录表的首扇区检查根目录表的起始两项是否为IO.SYS及MSDOS.SYS将IO.SYS文件起始三个扇区读入内存0000:0700H处跳到0000:0700H处执行IO.SYS,引导完毕上述任一步若出错,则显示“Non system disk or disk error. ”信息,等用户按任一键后试图重新启动,2.2 计算机的启动过程,2.2.3 Windows 2000/XP启动过程简介,在基于Intel的计算机上,Windows 2000/XP的启动过程大致可分为8个步骤预启动计算机加电自检,读取硬盘的MBR、执行NTLDR(操作系统加载器)文件进行初始化NTLDR将处理器从实模式转换为32位保护模式读取BOOT.INI文件BOOT.INI文件其作用是使系统在启动过程中出现选择菜单,由用户选择希望启动的操作系统,若只有一个操作系统则不显示加载NTDETECT.COM文件由NTDETECT.COM来检测计算机硬件,如并行端口、显示适配器等,并将收集到的硬件列表返回NTLDR用于以后在注册表中注册保存,2.2 计算机的启动过程,2.2.3 Windows 2000/XP启动过程简介,选择硬件配置文件如果Windows 2000/XP有多个硬件配置文件,此时会出现选择菜单,等待用户确定要使用的硬件配置文件,否则直接跳过此步,启用默认配置装载内核引导过程装载Windows 2000/XP内核NtOsKrnl.EXE。随后,硬件抽象层(HAL)被引导进程加载,完成本步骤初始化内核内核完成初始化,NTLDR将控制权转交Windows 2000/XP内核,后者开始装载并初始化设备驱动程序,并启动Win32子系统和Windows 2000/XP服务用户登录由Win32子系统启动WinLogon.EXE,并由它启动Local Security Authority (LSASS.EXE)显示登录对话框。用户登录后,Windows 2000/XP会继续配置网络设备、用户环境,并进行个性化设置。最后,伴随着微软之声和我们熟悉的个性化桌面,Windows 2000/XP启动过程完成,2.2 计算机的启动过程,简介,内存是程序运行时的“场所”,是存储正在运行的程序及程序运行所需数据的地方。许多病毒常“躲”在内存中监视系统的运行、伺机传播或爆发一台计算机要正常工作必须有两种内存只读内存(只读存储器,Read Only Memory,ROM)随机内存(随机存储器,Random Access Memory,RAM) ,这是我们通常所说的“内存”另外,Cache也是经常用到的,它位于CPU与内存之间,是一个读写速度比内存更快的存储器,称为高速缓冲存储器,简称高速缓存,2.2 内存管理,2.2.4 内存寻址技术的演变,20多年前,Intel推出了一款8位处理器8080,可访问到64K内的地址空间,还没有段的概念,访问内存都要通过绝对地址1978年,Intel开发出16位的处理器8086是内存寻址的第一次飞跃,引入了段概念,采用了“段地址:偏移量”的形式来描述内存地址,将内存分为数个64K大小的段Intel的80286处理器于1982年问世地址总线位数增加到24位,可以访问到16M的内存空间更重要的是从此开始引进了一个全新理念保护模式,访问内存时不能直接从段寄存器中获得段的起始地址,而需要经过额外转换和检查为了与旧处理器兼容,80286内存寻址可以以两种方式进行先进的保护模式(受保护的虚拟地址模式)老式的8086方式,即实地址模式(简称实模式),2.2 内存管理,2.2.4 内存寻址技术的演变,真正的第二次内存寻址飞跃发生在80386身上80386的地址总线扩展到了32位,可寻址空间扩充为4G在保护模式下,它的段范围不再局限于64K,可以达到4K4G在硬件上支持分页,确切的来说是:请求式分页的虚拟内存尽管目前已经在使用64位的处理器,但主流操作系统仍然基于I386体系结构在8088/8086汇编语言中,有16位寄存器AX、BX、CX、DX、SI、DI、SP和BP;在80386中,这些寄存器被扩展到了32位,即EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP,段寄存器增加了FS(附加数据段#1)和GS(附加数据段#2),2.2 内存管理,2.2.4 DOS内存布局,DOS操作系统运行于实模式中,2.2 内存管理,2.2.4 保护模式与虚拟内存,保护模式一般来说,80x86(80386及其以后的各代CPU)可在实模式、保护模式和虚拟86模式三种模式下运行实模式就是古老的MS DOS的运行环境,只能利用32位寄存器的前16位,而后面的16位就浪费了当前流行的Windows操作系统运行在保护模式下在Windows 9x下,如果开一个MS DOS窗口,即运行一个DOS应用程序,那么该程序就运行在虚拟86模式下保护模式和实模式采用了两种截然不同的思路保护模式带来的最大优点不是单纯的扩大了内存寻址范围,而是对内存寻址从机制上提供了保护,将系统的执行空间按权限进行了划分,防止应用程序非法访问其他应用程序的地址空间(任务间保护),防止应用程序非法访问操作系统地址空间(系统保护),2.2 内存管理,2.2.4 保护模式与虚拟内存,保护模式的权限级别在保护模式下,所有的应用程序都具有权限级别(Privilege Level,PL)。PL按优先次序分为四等:0级、1级、2级、3级,其中0级权限最高,3级最低目前只用到Ring 0和Ring 3两个级别,2.2 内存管理,特权级环,2.2.4 保护模式与虚拟内存,应用程序如果拥有第0级的权限,则可以执行任何指令并访问任何数据如果运行在Ring 3级,则只能执行有限指令,能访问的数据也有限操作系统核心层运行在Ring 0级,而Win32子系统运行在Ring 3级,为运行在Ring 3级的应用程序提供接口计算机病毒总是想方设法窃取Ring 0的权限(如CIH病毒),以实施更大范围的破坏,2.2 内存管理,Windows 2000/XP体系结构示意图,2.2.4 保护模式与虚拟内存,虚拟内存在Windows系统中,任何一个进程都被赋予其自己的4GB虚拟地址空间,但并不意味着每一个进程实际拥有4GB的物理地址空间,该地址空间仅仅是一个虚拟地址空间。进程实际可以得到的物理内存要远小于其虚拟地址空间进程的虚拟地址空间是每个进程私有的,在进程内运行的线程对内存空间的访问都被限制在调用进程之内,而不能访问属于其他进程的内存空间在不同的进程中可以使用相同地址的指针来指向属于各自调用进程的内容而不会由此引起混乱,2.2 内存管理,2.2.4 保护模式与虚拟内存,2.2 内存管理,Windows 9x进程的地址空间,Windows NT进程的地址空间,2.2.4 Win32内存管理,Win32中的内存管理是分层次的,系统提供了几组层次不同的函数来管理内存,它们是标准内存管理函数、虚拟内存管理函数、堆管理函数和内存映射文件函数。所有的这些函数都是为了让用户能在比较高的层次上方便地管理内存,以便将程序和底层的内存分页机制隔离开来,2.2 内存管理,2.3.1 中断,中断(Interrupt),就是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完成后能自动恢复执行原先程序的过程引起紧急事务的事件为中断源,处理紧急事务的程序为中断服务程序或中断处理程序计算机系统根据紧急事务的紧急程度,把中断分为不同的优先级,并规定:高优先级的中断能暂停低优先级的中断服务程序的执行在计算机系统中,引入中断的最初目的是为了提高系统的输入输出性能。随着计算机应用的发展,中断技术也应用到计算机系统的许多领域,如:多道程序、分时系统、实时处理、程序监视和跟踪等领域。中断的分类硬中断除以零、算术溢出、按下键盘等等,2.3 中断,2.3.1 中断,软中断因程序执行了计算机INT指令造成的例如:INT 21H将执行21H中断。这里21H称作中断号,其中H代表十六进制(H前取值范围为0FF)。系统就是用中断号来找出相应的中断处理程序的软中断包括BIOS中断、DOS中断与用户自定义中断,2.3 中断,2.3.2 中断优先权,CPU为了处理并发的中断请求,规定了中断的优先权。中断优先权由高到低是:调试故障其它故障除法错,INT0(溢出中断),INT n(软件中断)NMI(不可屏蔽中断)INTR(可屏蔽中断)单步中断规定了中断优先权之后,当多个中断同时发出中断请求时,CPU的中断逻辑就按照中断的优先权顺序来排队处理,首先处理中断优先权较高的中断,然后再处理中断优先权较低的中断在处理某一中断的过程中,如果有更高的中断源请求中断,则CPU会响应更高级的中断,2.3 中断,2.3.3 中断向量表,中断向量表(Interrupt Vectors)是一个特殊的线性表,它保存着系统所有中断服务程序的入口地址(偏移量和段地址)中断向量表占用内存最低端0000H到03FEH的1K地址空间,存放256个元素即远指针(中断向量),编号从00到255(00FFH)每一中断向量的入口地址占4个字节,高2字节存放中断向量的段地址,低2字节存放中断向量的偏移地址一个中断向量指向一个子程序,该程序就称为中断处理程序,2.3 中断,中断向量表,2.3.4 中断处理过程,CPU在执行程序时,是否响应中断要取决于以下三个条件能否同时满足:有中断请求;允许CPU接受中断请求;一条指令执行完,下一条指令还没有开始执行。条件是响应中断的主体。除用指令INT所引起的软件中断之外,其它中断请求信号是随机产生的,程序员是无法预见的程序员可用程序部分地控制条件是否满足,即可用指令STI和CLI来允许或不允许CPU响应可屏蔽的外部中断。而对于不可屏蔽中断和内部中断,CPU一定会响应它们,程序员是无控制权的。CPU一定会执行这些中断的中断服务程序,2.3 中断,2.3.4 中断处理过程,出现中断请求之后,CPU的操作过程是:先完成当前指令的操作,然后按中断优先权逐个判断是哪一类型的中断。确定中断类型之后,CPU进行如下几方面的工作:将状态标志进栈保护0IF(清除标志IF,禁止跟踪),0TF(清除标志TF,禁止中断)根据中断类型号计算中断向量入口地址在向量表中的偏移:偏移=中断类型号4保护断点,把当前代码段寄存器的内容进栈保护,将中断向量的段地址送CS;把当前指令指针入栈保护,将中断向量的偏移地址送IP;于是,程序就转到了中断服务程序进入中断服务程序之后,一般要保护现场(寄存器压栈),然后进行中断服务。在中断服务返回前要恢复现场(寄存器弹栈),最后用STI开中断,并用IRET恢复断点处的标志寄存器、CS和IP的值,2.3 中断,2.3.5 扩展INT 13H,设计扩展INT 13H接口的目的是为了扩展BIOS的功能,使其支持多于1024柱面的硬盘, 以及可移动介质的锁定、解锁及弹出等功能,2.3 中断,2.3.6 中断与计算机病毒,计算机提供很多中断,合理合法地修改中断,会给计算机增加非常有用的新功能计算机病毒则篡改中断为其达到传染、激发等目的服务与病毒有关的重要中断有:INT 13H磁盘输入输出中断,引导型病毒用于传染病毒和格式化磁盘INT 21H DOS功能调用中断INT 24H DOS的严重错误处理中断INT 25H DOS绝对磁盘读功能INT 26H DOS绝对磁盘写功能,2.3 中断,在可执行文件中,com文件的结构是最简单的。com文件只使用一个段,文件中的程序和数据的大小限制在64KB内。执行一个com文件时,DOS把com文件装入到系统分配的一个内存块中。在内存块的最前面为该程序建立一个程序段前缀PSP,PSP的大小为100H字节,com文件的内容直接读入到PSP之后的内存中,在运行com文件程序前,4个段寄存器CS、DS、ES、SS都初始化为PSP的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 牵拉性脱发的护理查房
- 慢性结肠炎的护理查房
- 脑干继发恶性肿瘤护理
- 脊髓硬化症个案护理
- JJF 2253-2025音叉式液体密度计校准规范
- 2025年思想政治教育工作者考试试题及答案
- 2025年卫生执业资格综合能力测试试题及答案
- 2025年经济统计师职业资格考试试题及答案
- 2025年基因组学基础与应用技能测试试卷及答案
- 2025年国际贸易理论与实务知识考核考试卷及答案
- 董事长给应届生培训
- 2025年湖北省技能高考(计算机类)专业知识考试题(附答案)
- 民兵应急知识培训课件
- 酒吧装修施工方案
- 初中生田径队训练计划
- 暨南大学《微观经济学》2023-2024学年第一学期期末试卷
- 班组安全工作总结汇报
- 高中英语必背3500单词表(完整版)
- DB11T 1911-2021 专业应急救援队伍能力建设规范 防汛排水
- 2024年版《输变电工程标准工艺应用图册》
- 北京市东城区东直门中学2024-2025学年七年级上学期分班考数学试卷
评论
0/150
提交评论