【win32汇编】0x01 开篇一些乱七八糟的话
之前弄完了16位汇编,现在正式学习win32汇编,首先就是一些原理了,其实就是在16位的基础上增加了一些内容,其程序主要的结构记录如下
(1)指令集
.386 这是指定指令集 必须工作在80386的处理器上
mov cr0,eax 这类指令在特权级0上运行,编译到这个就报错
如果要写VxD等驱动程序,中间要用到特权指令。必须定义.386p
但是在正常情况只要.386就可以了,这个是运行在特权级3上面的
Pentium MMX中增加了mmx指令
需要 .386
.mmx
(2)model
.model 内存模式 [.语言模式] [其他模式]
自动为各种段寄存器定义了地址 assume那些
(3)option 语句
option casemap:none 是表示对变量名和子程序大小写敏感
接下来就是一些include预计
<include xxx>
#下面就是一些段了
.stack [栈的大小]
.data
<初始化过的变量定义>
.data?
<未初始化的变量定义>
.const
<一些常量定义>
.code
<代码>
end 开始标号
实际上,这些段是内存的分段,而不是8086汇编的那些段