32位汇编
32位汇编比16位汇编多了保护模式,将内存分为 可读 r 可写w 不可读不可写只能执行
保护模式
内存访问空间变大 32位寻址 内存多了属性值 多了内存分区
实模式
处理器被抚慰或者加电的时候实模式启动 32位只使用20位为了向下兼容
32位汇编包含头文件格式
include windows.inc
include user32.inc
include kernel32.inc
32位汇编包含库文件格式
includelib user32.lib
includelib kernel32.lib
调函数直接invoke 关于压栈入栈平栈和保存bp全部由编译器帮忙实现了
函数传参不要用eax 因为返回值是用eax保存的,会使函数产生错乱
函数内使用寄存器并保护寄存器环境
Fun proc uses eax ecx eds esi
函数内容
Ret
Fun endp 自动平栈
函数内写Pushad 保存所有寄存器环境 pushf 保存所有标志寄存器
资源加载
首先用资源编译器编译一个资源文件.Rc的
使用rc.exe编译这个资源弄文件(这个文件的后缀名是.rc结尾)
编译出来之后是.RES的文件,我们把它当做obj文件使用,连接到PE文件中(exe文件中)即可
但是我们在设计窗口类的时候,需要使用一下这个菜单资源的ID
菜单资源的ID,在资源对应的Result.h的头文件中定义声明 比如IDC_BUT equ 1001
最后将资源文件和obj文件一起连接就可以了
Link /subsystem windows xxx.obj xxx.RE