如何动态获取汇编语言指令的机器码

时间:2020-12-16 01:02:13
比如 :mov %eax,%ebx
怎么在C语言中直接获取这条汇编指令的机器码并且将它存在 unsigned long 变量中
类似伪代码》》 unsigned long code = asm(unsigned long,"mov %eax,%ebx);

在此先谢过各位大神。

注:使用GCC 编译器

3 个解决方案

#1


再这句汇编前面搞个地址比如:

    int a=0;
    __asm ("mov %eax,%ebx");
    int* p = &a;
    p++;
    void* asmP = p;

asmP就是你要的地址

#2


这个最好用反汇编器来做。
网上有很多开源的反汇编器,其中的反汇编行为还可以通过选项参数来定制。
可以参考一下本猫的blog。

#3


谢谢回答。很有效

#1


再这句汇编前面搞个地址比如:

    int a=0;
    __asm ("mov %eax,%ebx");
    int* p = &a;
    p++;
    void* asmP = p;

asmP就是你要的地址

#2


这个最好用反汇编器来做。
网上有很多开源的反汇编器,其中的反汇编行为还可以通过选项参数来定制。
可以参考一下本猫的blog。

#3


谢谢回答。很有效