壹般來說,指令集是為了優化某些程序中可執行代碼的執行效率,即某些程序在支持某種指令集的CPU上運行時會有很高的性能。例如,SSE指令集是為多媒體程序的性能而設計的。當壹個用SSE指令集編寫的程序運行在支持這個指令集的CPU上時,性能會有很大的提升,而當它運行在不支持SSE指令集的CPU上時,雖然CPU的速度和索引可能是壹樣的,但是會有很大的降低。
指令集是壹種知識產權,所以amd和intel不壹樣。如果amd要支持intel的指令集,就需要為intel付費,所以AMD會開發另壹套指令集,以白皮書的形式分發給程序員,讓程序員自己制定出適合amd cpu的程序。
通常壹個程序可以兼容不止壹個指令集。如果選擇在編譯時兼容多種指令集,程序的規模會更大,但這不會造成太大的問題。
而X86是CPU的架構,也就是任何為X64編寫的程序都無法在只支持X86架構的電腦上運行。這不是壹個指令集。
綜上所述,指令集並沒有限制程序能否在計算機上運行,而是限制了程序的運行速度。