2014年10月18日

MVOZX MOVSX

摘要: 两者都是移动并扩展指令, 区别在于movzx操作无符号数, movsx操作有符号数. 举例:MOVZX EBX, AHMOVSX EBX, AH哈哈例子看不出分别, 不会动脑想想啊? 俗话说,师父领进门修行在个人; 俗话说, 说啥来着?...... 阅读全文

posted @ 2014-10-18 10:03 大呵呵 阅读(262) 评论(0) 推荐(0) 编辑

stos 串存储指令

摘要: stos 包括 stosb stosw stosd, 涉及的寄存器是eax, edi,功能如下:stosb 将al中的值复制到 byte ptr es:[edi] 中, 同时edi++stosw 将ax中的值复制到 wordptr es:[edi] 中, 同时edi++stosd 将eax... 阅读全文

posted @ 2014-10-18 10:02 大呵呵 阅读(1246) 评论(0) 推荐(0) 编辑

LOOP

摘要: mov ecx, 7 start: mov eax, 0x1234 loop start //loop指令将ecx = ecx -1; 并检测ecx是否为0, 不为0跳到start处,继续循环; ecx == 0终止循环,执行下面的指令. _________________________... 阅读全文

posted @ 2014-10-18 10:01 大呵呵 阅读(174) 评论(0) 推荐(0) 编辑

设置字串遍历的方向 CLD STD

摘要: CLD(CLear Direction flag 即DF置 0) 向右遍历字串STD(Set Direction flag 即DF 置1) 向左遍历字串 阅读全文

posted @ 2014-10-18 10:00 大呵呵 阅读(148) 评论(0) 推荐(0) 编辑

字串比较函数 strcmp

摘要: //重点在于函数中需要手动push一些寄存器, 且以ebp为基址计算参数的地址.#include "stdafx.h"__declspec(naked)int strcmpA(char *s1, char *s2) //__declspec(naked) 不用编译器自动附带各种push ebp p... 阅读全文

posted @ 2014-10-18 09:59 大呵呵 阅读(292) 评论(0) 推荐(0) 编辑

获取ZF值

摘要: 获取ZF的值, 可用SETE指令(zf值放到al中), 也可以用 JNZ JNE 跳转指令间接获得, 请看下面这段代码:char *s1 = "123";char *s2 = "1234";__asm{ xor al, al mov edi, s1 mov ecx, -1 repnz sc... 阅读全文

posted @ 2014-10-18 09:57 大呵呵 阅读(286) 评论(0) 推荐(0) 编辑

函数返回值存放在 EAX 中

摘要: int strcmpA(char *s1, char *s2){ __asm { xor al, al mov ecx, -1 repnz scasb not ecx mov edi, s1 mov esi, s2 repe cmpsb mov eax, ecx //eax中存放... 阅读全文

posted @ 2014-10-18 09:53 大呵呵 阅读(835) 评论(0) 推荐(0) 编辑

REPE CMPSB

摘要: REPECMPSB 涉及三个寄存器: ECX, EDI, ESI 以字节为单位逐个比较EDI与ESI指向的字符串, 比较结果相等时继续循环, 不相等时跳出循环. 阅读全文

posted @ 2014-10-18 09:52 大呵呵 阅读(961) 评论(0) 推荐(0) 编辑

REPNE SCASB(有疑问待解释)

摘要: 涉及到三个寄存器:ECX, AL, EDI 和标志寄存器的ZF位和DF位.REPNE 先检查ECX是否为0, 不为0则循环.SCASB 相当于 SCAS BYTE PTR DS:[EDI] 即 SUB AL, BYTE PTR DS:[EDI]. 且, 如果标志寄存器DF=0, 则执行SCASB后... 阅读全文

posted @ 2014-10-18 09:50 大呵呵 阅读(1467) 评论(0) 推荐(0) 编辑

取反NOT ,汇编指令SETZ(SETE) SETNZ(SETNE)

摘要: //___逻辑取反 !______________________________________________________非零值取反得到0, 0取反得到1int i, j;i = 0x8877;j = !i;反汇编代码:MOV DWORD PTR SS:[EBP-4], 0X4321XOR... 阅读全文

posted @ 2014-10-18 09:48 大呵呵 阅读(11747) 评论(0) 推荐(0) 编辑

或运算

摘要: 逻辑或 ||int i, j, k;i = 0x15;j = 0x41;k = i || j;反汇编代码如下:MOV DWORD PTR SS:[EBP-4], 15MOV DWORD PTR SS:[EBP-C], 41CMP DWORD PTR SS:[EBP-4], 0JNZ SHORT as... 阅读全文

posted @ 2014-10-18 09:47 大呵呵 阅读(339) 评论(0) 推荐(0) 编辑

SHL SHR, SAL SAR, ROL ROR

摘要: //____逻辑移动是针对无符号数的______________________________________________逻辑左移SHL 逻辑右移SHR: unsigned int i = 0x1234; unsigned int j = 0; j = i >> 8; //右移,执行后 j=... 阅读全文

posted @ 2014-10-18 09:45 大呵呵 阅读(499) 评论(0) 推荐(0) 编辑

FILD FLD FSTP

摘要: FILD 整数与浮点数 + - * / 等操作时, 用FILD将整数压入浮点栈中, 进行后序操作.FLD 入浮点栈, 相当于整数栈的PUSHFSTP出浮点栈, 相当于整数栈的POP 阅读全文

posted @ 2014-10-18 09:28 大呵呵 阅读(954) 评论(0) 推荐(0) 编辑

浮点指令 FADD FSUB FMUL FDIV

摘要: 1. FADD memvar //st0 = st0 + memvar;例: fadd dword ptr ds:[3120fe] // st0 = st0 + dword ptr ds:[3120fe];1. FSUB memvar // st0 = st0 - memvar;例: fsu... 阅读全文

posted @ 2014-10-18 09:22 大呵呵 阅读(1492) 评论(0) 推荐(0) 编辑

浮点栈结构(转帖)

摘要: 浮点栈结构(转帖)在介绍X86浮点栈结构之前,先说明一下X87,X87是IA_32体系结构中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器,使用X87指令,X86指令集和X87指令集统称为X86指令集。可以简单的理解X87是一个浮点协处理器,是X86的浮点处理单元。X86的浮点单元(X87... 阅读全文

posted @ 2014-10-18 09:21 大呵呵 阅读(1732) 评论(0) 推荐(1) 编辑

__cdecl, __stdcall, __fastcall

摘要: 共同点: 从右向左压栈实参. 压栈顺序: 1.压实参 2. 压EIP值 3.进入函数后,压EBP值......区别:__cdecl 返回后ADD ESP, 4 (一个int参数)__stdcall返回前 RETN 04 (一个int参数)__fastcall 如果只有两个参数,则不需... 阅读全文

posted @ 2014-10-18 08:57 大呵呵 阅读(175) 评论(0) 推荐(0) 编辑

条件转移指令 与 标致寄存器

摘要: 阅读全文

posted @ 2014-10-18 08:55 大呵呵 阅读(146) 评论(0) 推荐(0) 编辑

EBP ESP 与 CAL

摘要: EBP 栈底指针(会随进入不同的函数而改变, 更喜欢手动改变, 自动的有时会画蛇添足)ESP栈顶指针(永远指向栈顶)CAL调用函数(隐含操作是将EIP的值入栈, 并将EIP设置为CALL指向的地址)示例:main()函数中的EBP =ESP =12FF7Cvoid fun2(int a, int b... 阅读全文

posted @ 2014-10-18 08:53 大呵呵 阅读(229) 评论(0) 推荐(0) 编辑

CALL 与 RETN RETF

摘要: CALL指令 CALL指令可不是召唤指令,而是子程序调用指令。那么汇编语言中的子程序是什么呢?子程序能被其它程序调用,在实现某种功能后能自动返回到调用程序去的程序。其最后一条指令一定是返回指令,故能保证得新返回到调用它的程序中去。也可调用其它子程序,甚至可自身调用。 我们可以暂时把子程序理解为一... 阅读全文

posted @ 2014-10-18 08:49 大呵呵 阅读(783) 评论(0) 推荐(0) 编辑

测试

摘要: 测试ing 阅读全文

posted @ 2014-10-18 08:28 大呵呵 阅读(79) 评论(0) 推荐(0) 编辑

导航