zoukankan      html  css  js  c++  java
  • 汇编学习(一)

    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编译通过

  • 相关阅读:
    DAO模式多表联查
    使用ADO.NET访问数据库
    连接查询和分组查询
    模糊查询和聚合函数
    poj 1220 NUMBER BASE CONVERSION
    poj 1964 City Game
    Odd number problem
    POJ 2983 M × N Puzzle
    L O V E
    【Mybatis】【3】处理大于号小于号及其他特殊字符
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7246384.html
Copyright © 2011-2022 走看看