int a = 1; mov dword ptr [ebp - 8], 1
int b = 2; mov dword ptr [ebp - 14h],2
int c = a + b; mov eax, dword ptr [ebp - 8]
add eax, dword ptr [ebp - 14h]
mov dword ptr [ebp - 20h], eax
汇编语言:8086汇编(16bit),x86汇编(32bit),x64汇编(64)bit (汇编语言不区分大小写)
AT&T汇编 vs Intel汇编
寄存器命名 %eax eax Intel的不带%
操作数顺序 movl %eax,%edx mov edx, eax 将eax的值赋值给edx
常数\立即数 movl $3,%eax mov eax,3 将3赋值给eax
jmp指令 jmp *%edx jmp edx
jmp *0x4001002 jmp 0x4001002 在AT&T的jmp地址前面要加星号*
jmp *(%eax) jmp [eax]
操作数长度 movl %eax, %edx mov edx, eax
movb $0x10, %al mov al, 0x10
leaw 0x10(%dx),%ax lea ax, [dx + 0x10]
// b=byte(8-bit)
s=short(16
x64汇编要点总结
最新推荐文章于 2022-08-06 22:03:40 发布