汇编语言
种类 - 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;}
版权归原作者 schedule___ 所有, 如有侵权,请联系我们删除。