zoukankan      html  css  js  c++  java
  • mov-[地址值]-call-lea-ret

    mov dest, src

    • src:来源 dest:目标 类似 dest=src

    [地址值]

    • []里面放的一定是地址值
    int a = 3;      //使用4个字节存储一个3
    mov    dword ptr [ebp-8],3    //3放入内存需要指定大小
    dword ptr    //ptr是语法,用于指定大小,左边是单位
    word是字,表示2字节,dword是4字节(double word),qword是8字节(quad word)
    

    call函数地址

    call 00112233    //会跳转到函数地址
    jmp  44556677    //会跳转到函数的真正地址
    

    为什么不直接用a的地址,而是ebp-8

    int a = 3;     //函数调用,开辟局部空间,每次ebp都是一个全新的值
    cout << &a << endl;
    

    全局变量a的地址值是写死的地址

    CPU的大小端模式 大部分都是小端模式(00000011先放到内存低地址处)

    mov    dword ptr [ebp-8],3    //存
    00000000 00000000 00000000 00000011    //00000011先放到内存4个字节空间的哪里呢
    
    mov    eax,dword ptr [ebp-8]    //读,从内存低到高吞并4字节
    00000000 00000000 00000000 00000011    //00000011读出来放到最后,小端模式
    
    • 调试-窗口-内存-选择一个

    lea dest, [地址值];直接把地址值赋给dest

    • lea,load effect address装载一个有效的地址值
    lea eax, [1122H]
    eax == 1122H
    

    ret函数返回

    xor op1, op2 异或结果赋值给op1

    • op1=op1 ^ op2

    add 加法

    sub 减法

    inc 自增

    • 类似于op = op + 1

    dec 自减

    jmp 内存地址

    cmp 比较

    jne:jump not equal不相等时跳转

    其他语言查手册

    • intel白皮书-非常大,最后再来这里找
    • https:software.intel.com/en-us/articles/intel-sdm
  • 相关阅读:
    JavaWeb--HttpSession案例
    codeforces B. Balls Game 解题报告
    hdu 1711 Number Sequence 解题报告
    codeforces B. Online Meeting 解题报告
    ZOJ 3706 Break Standard Weight 解题报告
    codeforces C. Magic Formulas 解题报告
    codeforces B. Sereja and Mirroring 解题报告
    zoj 1109 Language of FatMouse 解题报告
    hdu 1361.Parencodings 解题报告
    hdu 1004 Let the Balloon Rise 解题报告
  • 原文地址:https://www.cnblogs.com/sec875/p/12260301.html
Copyright © 2011-2022 走看看