C insn代表什么?
我需要一个x86(-64)反汇编程序,所以我开始阅读objdump的源代码。在搜索了一点之后,我在一个文件“ia64 asmtab.h”中。内部是一个结构“ia64\u main\u table”:C insn代表什么?,c,intel,instruction-set,disassembly,C,Intel,Instruction Set,Disassembly,我需要一个x86(-64)反汇编程序,所以我开始阅读objdump的源代码。在搜索了一点之后,我在一个文件“ia64 asmtab.h”中。内部是一个结构“ia64\u main\u table”: struct ia64_main_table { /* The entry in the string table that corresponds to the name of this opcode. */ unsigned short name_index; /* Th
struct ia64_main_table
{
/* The entry in the string table that corresponds to the name of this
opcode. */
unsigned short name_index;
/* The type of opcode; corresponds to the TYPE field in
struct ia64_opcode. */
unsigned char opcode_type;
/* The number of outputs for this opcode. */
unsigned char num_outputs;
/* The base insn value for this opcode. It may be modified by completers. */
ia64_insn opcode;
/* The mask of valid bits in OPCODE. Zeros indicate operand fields. */
ia64_insn mask;
/* The operands of this instruction. Corresponds to the OPERANDS field
in struct ia64_opcode. */
unsigned char operands[5];
/* The flags for this instruction. Corresponds to the FLAGS field in
struct ia64_opcode. */
short flags;
/* The tree of completers for this instruction; this is an offset into
completer_table. */
short completers;
};
在谷歌上搜索一下,没有显示出任何有用的结果,我感到很困惑。有人知道insn代表什么吗?我觉得它应该代表指导,但它似乎还意味着其他东西。在这里回答我自己的问题。insn唯一可行的意义似乎是指令。谢谢你的链接,杰夫。有些INSN是实际的说明;其他代表switch语句的调度表;另一些则表示要跳转到的标签或各种声明性信息。 有关INSN的更详细说明,请参见此链接
如果有任何指示,
insn
可能意味着指令。是的,它一定意味着指令。我想不出别的了。再看一遍那个网站,我可能错了。我觉得这是英特尔官方代码的官方变更日志。它似乎是从所以可能不一定是它。但是,同样的,这个变化来自一个有英特尔电子邮件的人。如果你试图创建一个x86-64反汇编程序,IA-64是一个错误的地方。安腾是一个完全独立的体系结构,具有完全不相关的机器代码格式。固定宽度VLIW bundle与x86指令的复杂程度不同,因此它不是一个好的起点。这是因为GCC RTL使用缩写,而不是Binutilsobjdump
。当然,它是同一个英语单词(“指令”)的缩写,但实际对象不同。这只是一个明显的缩写,是独立发明的。我自己也用过,事实上,我想知道这个问题是不是关于我的答案,直到我看到它有多老。