Win32汇编开发_MASM32
来源:互联网 发布:淘宝信用贷款逾期一天 编辑:程序博客网 时间:2024/06/16 21:15
开发环境搭建
下载MASM32.exe
安装到C盘,只能到根目录,不能另指目录,但他不写注册表,可以安装后移动位置
编译源文件
1.使用EditPlus编辑*.asm源文件
2.源文件*.asm 使用ml编译成*.obj
3.界面资源文件*.rc使用rc编译*.res
4.使用Link 将*.obj,*res,连接成*.exe
5.使用OllyDebug调试*.exe 文件
这三个工具ml,rc,link在安装目录\masm32\bin中,需要指定Path路径
可以制作如下批文件,每次运时执行
--------------------------------------------------------------------------
@echo off
rem 请根据 Masm32 软件包的安装目录修改下面的 Masm32Dir 环境变量!
set Masm32Dir=C:\Program Files\masm32
set include=%Masm32Dir%\Include;%include%
set lib=%Masm32Dir%\lib;%lib%
set path=%Masm32Dir%\Bin;%Masm32Dir%;%PATH%
set Masm32Dir=
cmd
echo on
----------------------------------------------------------------------
基本用法如下例
ml /c /coff Test.asm /c 只编译成obj /coff 目前只支持COFF文件格式
rc Test.rc
Link /subsystem:windows Test.obj Test.res /subsystem:windows 表示生成图形界面, /subsystem;console表示生成命令行程序
可生成bat 文件
-----------------------------------------------------------
del Test.obj
del Test.res
del Test.exe
ml /c /coff Test.asm
rc Test.rc
link /subsystem:windows Test.obj Test.res
----------------------------------------------------------
调试时可以 反复执行
要点记录
问题2:test 与cmp区别与联系
test逻辑与运算结果为零,就把ZF(零标志)置1;
cmp 算术减法运算结果为零,就把ZF(零标志)置1.
常用法是
text ax,ax //判断寄存器是否为空
jz SomeWhare
问题3. C++ 调用约定
问题4 函数调用后,使用栈传递参数
[ebp+8] 右边第一个参数[ebp+0c] 右边第二个参数 ...
1.所谓领空,实际上是指:在某一时刻,CPU 的 CS:IP(EIP) 所指向的某一段代码的所有者所在的区域。
在OD中,可以使用Alt+F9 回到应用程序领空
容易混淆的汇编语法
enter 指令 和 leave 指令
子程序进入时,调用enter,返回前调用leave 相当于如下指令
enter xxx => push ebp
push ebp,esp
sub esp,xxx
leave <==> add esp,xxx
pop ebp
Eg: lea eax,[]
有关跳转指令,
JCXZ(CX 为 0 则跳转)、
JECXZ(ECX 为 0 则跳转);
详解
- Win32汇编开发_MASM32
- Win32汇编开发环境
- Win32汇编开发环境配置
- Win32 汇编
- Win32汇编开发环境介绍和RadAsm简明教程
- Win32汇编开发环境介绍和RadAsm简明教程
- Radasm与win32汇编开发教程(第三版) --第一章
- Win32汇编开发环境介绍和RadAsm简明教程
- Win32汇编开发环境介绍和RadAsm简明教程
- Win32汇编开发环境介绍和RadAsm简明教程[一]
- Win32汇编开发环境介绍和RadAsm简明教程[二]
- 新版WIN32汇编开发环境介绍及RadAsm简明教程
- 初学Win32汇编的参考书籍及开发环境
- dos汇编 和 win32汇编
- [汇编]_[初级]_[VS2010搭建汇编开发环境win32和x64]
- WIN32汇编: 8.菜单
- WIN32汇编: 14.进程
- WIN32汇编: 21.管道
- char* 和char[]的区别
- (转)数据流图(DFD)-2
- SICP 解题集
- Java 学习笔记(基本概念)
- USB-HID鼠标、键盘通讯格式
- Win32汇编开发_MASM32
- 一步一步学android之布局管理器——LinearLayout
- Js获取当前日期时间及其它操作
- gridview中checkbox编辑
- ZOJ 3562 Alice's Sequence I
- python mysql data change and query
- ios日期格式转换
- 使用JS和使用Jquery向select下添加option的区别
- 原 教 旨 儒 家 论