我怎么知道我正在查看的是 CISC 还是 RISC 指令集?
How do I know whether I'm looking at a CISC or RISC instruction set?
是否有任何 header 可靠地存在于所有“标准”(假设其设计为通过某些通用计算平台正常执行)的可执行二进制文件中,我可以使用它们来确定我是否正在查看 CISC或 RISC 指令集?
或者我是否必须使用可执行文件所在系统的上下文知识来假设指令架构?
没有。一个反例是 DOS .com
executables:没有元数据,只有裸机代码。固件的 ROM 映像可能同样没有元数据。
如果您谈论的是 ELF executables,它们会指出它们用于什么 ISA,但不要将该 ISA 归类为 RISC 与 CISC。因此,您需要 table 所有 RISC ISA 和所有 CISC ISA。
有些 ISA 甚至模糊了这条线,例如 ARM,它具有一些 CISCy 功能,例如 load-multiple,或者(仅在纸面上)ForwardCom,其架构师描述为既不是 RISC 也不是 CISC,但结合各自的想法。
是否有任何 header 可靠地存在于所有“标准”(假设其设计为通过某些通用计算平台正常执行)的可执行二进制文件中,我可以使用它们来确定我是否正在查看 CISC或 RISC 指令集?
或者我是否必须使用可执行文件所在系统的上下文知识来假设指令架构?
没有。一个反例是 DOS .com
executables:没有元数据,只有裸机代码。固件的 ROM 映像可能同样没有元数据。
如果您谈论的是 ELF executables,它们会指出它们用于什么 ISA,但不要将该 ISA 归类为 RISC 与 CISC。因此,您需要 table 所有 RISC ISA 和所有 CISC ISA。
有些 ISA 甚至模糊了这条线,例如 ARM,它具有一些 CISCy 功能,例如 load-multiple,或者(仅在纸面上)ForwardCom,其架构师描述为既不是 RISC 也不是 CISC,但结合各自的想法。