2013-05-28 3 views
2

J'ai récemment commencé des recherches sur ce qu'il faudrait pour programmer un compilateur JIT. J'ai étudié le langage machine, mais je n'ai pas réussi à trouver le type de langage machine sur lequel fonctionnent la plupart des PC standard. J'ai trouvé this PDF qui semble expliquer un type de ML, mais il dit qu'il est MIPS, qui, après looking it up, semble être une sorte de vieux, console de jeux vidéo/langage machine de routeur. Donc, ma question est,Quel type de langage machine ne fonctionne généralement sur les PC

Quel langage de machine font fonctionner la plupart des ordinateurs personnels modernes (ordinateurs portables, ordinateurs de bureau)?

Ou, est indéterminable? Y a-t-il beaucoup de langages machine? Ou peut-être que je me trompe, et MIPS est standard?

Répondre

3

Le langage machine utilisé par un processeur donné est fonction de sa instruction-set architecture (« ISA »). La plupart des ordinateurs de bureau et portables fonctionnant aujourd'hui sous Microsoft Windows utilisent des processeurs "64 bits" implémentant l'ISA "x86-64", tels que ceux des familles de processeurs "Core i5" et "Core i7" d'Intel. Communément appelé "x64", il s'agit de l'extension 64 bits (créée par AMD) pour l'ISA "IA-32" d'origine (créé par Intel).

deux architectures "IA-32" et "x 64" sont des exemples de Complex Instruction Set Computing ("CDCI"). D'un autre côté, MIPS est un exemple du style d'architectures beaucoup plus simple Reduced Instruction Set Computing ("RISC"). Lorsque vous parlez de JIT compilers, il est important de faire la distinction entre l'ISA de la machine virtuelle exécutant le byte-code et l'ISA du processeur physique sous-jacent. La plupart des machines virtuelles sont basées sur des architectures RISC, en raison de leur relative simplicité. Cependant, il est fort probable que ce compilateur VM-plus-JIT sera exécuté physiquement sur un processeur CISC compatible x64.

+1

Ok, je pense que je comprends. Alors, comment les programmes 32 bits s'exécutent sur les processeurs 64 bits? Ou les ordinateurs modernes ont-ils les deux processeurs 64 bits et 32 ​​bits? – Codesmith

+0

x64 est une extension des architectures IA-32 d'origine, et tous les processeurs x64 supportent aujourd'hui IA-32. Lequel des modes ISA réellement utilisés est une fonction du système d'exploitation que vous utilisez. Si vous exécutez, par exemple, une version "64 bits" de Windows ou Linux, il utilisera les capacités 64 bits de votre processeur x64. Si vous exécutez un système d'exploitation "32 bits", seule la partie IA-32 du processeur sera utilisée. –

+0

Ok, - maintenant je regarde http://en.wikipedia.org/wiki/X86_instruction_listings. Comment puis-je savoir quelles instructions les ordinateurs prennent en charge? – Codesmith

Questions connexes