32位汇编简介

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

posted @ 2020-09-05 16:52  特权E5  阅读(430)  评论(0编辑  收藏  举报