背景知识

80386处理器有3种工作模式:实模式,保护模式和虚拟86模式。实模式和虚拟86模式是为了和8086处理器兼容而设计的。在实模式下,80386处理器就相当于一个快速的8086处理器。保护模式是80386处理器的主要工作模式。
实模式:被复位或加电的时候以实模式启动。
保护模式:所有功能都可用。
虚拟86模式:以任务形式在保护模式上执行,在80386上可以同时支持由多个真正的80386任务和虚拟86模式构成的任务。

内存分页管理只能在保护栻上才可以实现,实模式不支持分页机制。不管在哪种模式下,所有寻址指令使用的都是线性地址。

“门”指向某个优先级高的程序所规定的入口点,所有优先级低的程序调用优先级高的程序只能通过门重定向,进入门所规定入口点。这样可以避免低级别的程序代码从任意位置进入优先级高的程序的问题。保护模式下的中断和异常等服务程序也要从“门”进入,80386的门分为中断门,自陷门和任务门几种。

80386共设置了4个优先级(0-3),0最高是特权级,一般是操作系统代码,可以访问全部系统资源,其他级别的代码一般是用户程序,可以访问的资源受到限制。

80386的保护机制:为了检查和防止低级别代码的越权操作,如访问不该访问的数据,端口以及调用高优先级的代码等,具体包括:

段的类型检查:段的类型是由段描述符指定的,主要属性有是否可执行,是否可读和是否可写


Windows可执行文件叫做PE文件
编译器有MASM(Microsoft),TASM(Borland),NASM(开源跨平台)

Make:可以看成是一个智能批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式-通过调用makefile文件中用户指定的命令来进行编译和链接

*.rc:资源脚本文件
*.res:资源文件
.inc头文件

几个特殊的内定宏:
1.$@:全路径的目标文件
2.$*:除去扩展名的全路径的目标文件
3.$?:所有源文件名
4.$<:源文件名

页的类型检查:除了可以在段级别上指定整个段是否可读写外,在页表中也可以为每个页指定是否可写

访问数据的级别检查:优先级低的代码不能访问优先级高的数据段

控制转移的检查:在处理器中,有很多指令可以实现控制转移,如jmp,call,ret,int,iret等指令。

指令集的检查:有两类指令可以影响保护机制。特权指令,敏感指令

Windows下,操作系统运行于0级,应用程序运行于3级。不使用1,2级

你可能感兴趣的:(windows,masm)