0


汇编语言 0x64

汇编语言

  • 种类 - 8086汇编(16bit)- x86汇编(32bit)- x64汇编(64bit)- ARM汇编

  • x64汇编,根据编译器的不同有两种书写格式 - Intel- AT&T
    项目AT&TIntel说明寄存器名%eaxeaxIntel不带%操作数顺序movl %eax,%edxmov edx,eax将eax的值赋值给edx立即数movl $3,%eax
    movl $0x10,%eaxmov eax,3
    mov eax,0x10将3的值赋值给eax
    将0x10的值赋值给eaxjmp指令jmp *%edx
    jmp *0x4001002
    jmp (%eax)jmp edx
    jmp 0x4001002
    jmp [eax]在AT&T中jmp地址前要加
    操组数长度movl %eax,%edx
    movb $0x10,%al
    leaw 0x10(%dx),%axmov edx,eax
    mov al,0x10
    lea ax,[dx+0x10]

  • 汇编语言不区分大小写

x64汇编-寄存器

  • 通常CPU将内存中的数据存储到寄存器中,然后再对寄存器中的数据进行运算
  • PC是非intel厂家对IP的称呼,也就是说PC起始跟CS:IP是一回事儿。在这里插入图片描述

内联汇编

#include<iostream>usingnamespace std;intmain(){int a =1;
    __asm {
        mov eax, a;
        add eax,1;
        mov a, eax;}
    
    cout << a << endl;return0;}
标签:

本文转载自: https://blog.csdn.net/woshinadie/article/details/117934666
版权归原作者 schedule___ 所有, 如有侵权,请联系我们删除。

“汇编语言 0x64”的评论:

还没有评论