2014年10月18日

函数返回值存放在 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) 编辑

导航