CPU指令集是什么?和汇编指令有什么联系?
用高级语言比如C语言写的代码经过编译最终成为可执行文件,文件的内容无非就是一堆数据,是什么不重要,但前提是这些数据从编译出来后就是固定的了,那么问题来了……
数据是不会改变的,但是Intel和AMD的cpu指令集都不同,比如Intel有SSE系列指令集而AMD没有,那么对于不同的指令集相同的数据可以解释出不同的指令,但程序在编写编译出来的时候其指令和要达到的目的肯定是只有一种了,但是经过不同指令集的解析后有多种结果,那么cpu如何保证程序正常的执行?假设如果编译器是考虑到了兼容的问题,使用了让Intel和AMD都能解析出相同结果的x86指令集,那么假设Intel的SSE系列指令集更有高效,但却不能使用反而需要使用比较老式原始的x86指令集其效率岂不是很low?还有反汇编时的把那些数据对应成一句句的汇编指令和cpu的指令集有没有什么联系?或者只是单纯的把数据用汇编指令给描述出来而已?