汇编学习(一)

1.需求

1.工作这几年中虽然都是使用c/c++,但有时跟踪bug最后都是到汇编中,而那部分代码大部分都无法看懂
2.还有最近在搞反汇编,也需要一些汇编的知识
3.程序有时候运行较慢,汇编可能更直接些

2.方法

1.先找一本基础教程 “Intel汇编语言程序设计”
2.开始最简单的c++中嵌入汇编
3.写c++函数下断点,用vc带的反汇编查看汇编,搞下来,自己修改下
4.c++和汇编达到互调
5.用汇编重写和硬件关联较为密切的东东
6.用反汇编工具w32dsm破解dll和exe中的函数
7.读懂mfc中汇编部分代码

3.代码片段

mymain.cpp
#include <iostream>
using namespace std;

int add(int a, int b)
{
    __asm
    {
        mov eax, dword ptr[a]
        add eax, dword ptr[b]
    }
}

int add(int *a, int *b)
{
    __asm
    {
        mov eax, dword ptr[a]
        mov eax, dword ptr[eax]
        mov ecx, dword ptr[b]
        add eax, dword ptr[ecx]
    }
}

int main()
{
    int a = 3;
    int b = 4;
    int nvalue = add(&a, &b);
    cout << nvalue << endl;
    std::system("pause");
    return 0;
}
注:vs2013 + win7 + i3编译通过
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值