Win32汇编
文章平均质量分 67
小大小丑
小丑
展开
-
罗云彬win32汇编教程笔记 Win32汇编的标号和 @@
Win32汇编的标号和 @@(相当于C中的goto)当在程序中使用一条跳转指令的时候,可以用标号来表示跳转的目的地,编译器在编译的时候会把它替换成地址,标号既可以定义在目的指令同一行的头部,也可以在目的指令前一行单独用一行定义,标号定义的格式是:标号名: 目的指令标号的作用域是当前的子程序,在单个子程序中的标号不能同名,否则编译器不知该用哪个地址,但在不同的子程转载 2012-03-12 13:18:20 · 2462 阅读 · 0 评论 -
Call指令与ret指令
一. call指令段内转移CPU执行call指令时,进行两步操作:1、将当前的IP或CS和IP压入栈中;2、转移;call指令不能实现短转移。与jmp指令实现转移的原理相同。格式:call 标号(把当前IP压栈后, 转到标号处执行指令)a. (SP) = (SP) - 2 ((SS) * 16 + SP) = (IP)b. (IP) = (IP) +转载 2012-03-20 13:15:40 · 4204 阅读 · 0 评论 -
汇编字符串处理指令 二
http://zzc1684.iteye.com/blog/1297417这里的 "串" 并不单指字符串, 包括所有连续的数据(如数组); 串指令只用于内存操作. --------------------------------------------------------------------------------移动串指令: MOVSB、MOVSW、MOVSD ;从 ESI转载 2012-04-05 20:27:25 · 1398 阅读 · 0 评论 -
SS, SP, BP 三个寄存器
SS, SP, BP 三个寄存器SS:存放栈的段地址;SP:堆栈寄存器SP(stack pointer)存放栈的偏移地址;BP: 基数指针寄存器BP(base pointer)是一个寄存器,它的用途有点特殊,是和堆栈指针SP联合使用的,作为SP校准使用的,只有在寻找堆栈里的数据和使用个别的寻址方式时候才能用到比如说,堆栈中压入了很多数据或者地址,你肯定想通过SP来访问这些数据或转载 2012-03-19 20:27:11 · 29427 阅读 · 1 评论 -
罗云彬win32汇编教程笔记 子函数的声明, 定义与调用
在主程序中用call指令来调用子程序。 Win32汇编中的子程序也采用堆栈来传递参数,这样就可以用invoke伪指令来进行调用和语法检查工作。一. 子程序的定义子程序的定义方式如下所示。子程序名 proc [距离][语言类型][可视区域][USES 寄存器列表][,参数:类型]...[VARARG] local 局部变量列表 指令子转载 2012-03-16 11:56:51 · 3958 阅读 · 0 评论 -
罗云彬win32汇编教程笔记 Win32汇编的全局变量与局部变量
Win32汇编的全局变量与局部变量变量的值在程序运行中是需要改变的,所以它必须定义在可写的段内,如 .data和 .data?,或者在堆栈内。按照定义的位置不同,MASM中的变量也分为全局变量和局部变量两种。1. 全局变量的定义全局变量的作用域是整个程序,Win32汇编的全局变量定义在 .data或 .data?段内,可以同时定义变量的类型和长度,格式是:变量名转载 2012-03-12 17:14:39 · 5201 阅读 · 0 评论 -
汇编lea 指令与 mov 指令
http://www.cnitblog.com/textbox/articles/51912.html比如你用local在栈上定义了一个局部变量LocalVar,你知道实际的指令是什么么?一般都差不多像下面的样子: push ebp mov esp, ebp sub esp, 4 现在栈上就有了4各字节的空间,这就是你的局部变转载 2012-03-12 21:22:54 · 5201 阅读 · 0 评论 -
Win32汇编的 PTR, OFFSET, ADDR
http://tech.ddvip.com/2010-04/1270705496150170.htmlPTR: 指定要操作的数据尺寸OFFSET: 获取全局变量或标号的偏移地址ADDR: 类似 offset 也是获取变量的地址(局部变量的地址只能用ADDR来获取) PTR: 指定要操作的数据尺寸; Test12_1.asm .386 .model flat, s转载 2012-03-12 20:18:45 · 2300 阅读 · 0 评论 -
Win32汇编环境配置
Win32 汇编环境配置1. 下载MASM32 http://www.masm32.com/masmdl.htm2. 安装(例如安装在C:\MASM32)3. 编译下面例子; 使用 nmake 或下列命令进行编译和链接:; ml /c /coff Hello.asm; Link /subsystem:windows Hello.obj;>>>>>>>>>>>>>>>原创 2012-03-08 15:49:27 · 956 阅读 · 0 评论 -
罗云彬win32汇编教程笔记 变量的使用
变量的使用1. 以不同的类型访问变量例如: 定义一个变量:szBuffer db 1024 dup (?)使用:mov ax, szBuffer编译器会报一个错:error A2070: invalid instruction operands意思是无效的指令操作,为什么呢?因为szBuffer是用db定义的,而ax的尺寸是一个word,转载 2012-03-12 19:23:03 · 4050 阅读 · 1 评论 -
汇编的Enter, leave, return 指令
enter的用法:enter 8, 3 ;就是申请8个存储单元(在堆栈中),特权为3http://www.cnblogs.com/keepfocus/archive/2011/09/15/2176925.html1. enter等价于:push ebpmov ebp, esp在函数的入口时常用。ENTER n 申请局转载 2012-03-21 13:08:02 · 8136 阅读 · 0 评论