机器码与汇编代码对应方法

1, 拿到机器码,写到c语言文件中

int main()
{
	__asm__ __volatile__ (".byte 0x66, 0xf, 0x3a, 0xf, 0xd1, 0x4, 0x8d, 0x7f, 0x20, 0x66, 0xf, 0x7f, 0x54, 0x3a, 0xe0, 0x66");

}

2, gcc -m32 a.c 生成a.out

3,objdump -d a.out 得到汇编代码(部分如下)

080483ed <main>:
 80483ed:	55                   	push   %ebp
 80483ee:	89 e5                	mov    %esp,%ebp
 80483f0:	66 0f 3a 0f d1 04    	palignr $0x4,%xmm1,%xmm2
 80483f6:	8d 7f 20             	lea    0x20(%edi),%edi
 80483f9:	66 0f 7f 54 3a e0    	movdqa %xmm2,-0x20(%edx,%edi,1)
 80483ff:	66 5d                	pop    %bp
 8048401:	c3                   	ret    
 8048402:	66 90                	xchg   %ax,%ax
 8048404:	66 90                	xchg   %ax,%ax
 8048406:	66 90                	xchg   %ax,%ax
 8048408:	66 90                	xchg   %ax,%ax
 804840a:	66 90                	xchg   %ax,%ax
 804840c:	66 90                	xchg   %ax,%ax
 804840e:	66 90                	xchg   %ax,%ax

可以对应起来(仅供参考)

感谢东晓大神

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值