MIPS et ARM différences
Je viens de commencer l'apprentissage de l'architecture et j'ai quelques confusions entre les MIPS et ARM architectures.
Je suis venu pour savoir que le MIPS a principalement deux instructions formats: I et R (J). J'ai lu sur ces formats de représentation, rs, rt, l'opcode et les choses liées. J'ai aussi eu un coup d'oeil à la COA livre de Patterson (Édition-IV), qui se concentre sur les BRAS de l'ISA. L'instruction de la représentation est différente dans cette édition. Ces différences en raison des diverses architectures? Et le BRAS de montage code est légèrement variable avec le livre que j'ai utilisé avec MIPS ISA.
par exemple. Patterson' édition IV dit
LDR r5,[r3,#32]
STR r1,[r4,#48]
tandis que l'autre MIPS celui que j'ai lu dit
lw r5,[r3,#32]
sw r1,[r4,#48]
Est la différence due à l'ISA ils suivent ou qu'ils sont deux versions différentes de la même ISA? Pourriez-vous également expliquer les principales différences entre les MIPS et ARM?
lw $5, 32($t3)
ou sw $a0, 48($t4)
MIPS et ARM sont différentes architectures et les différentes normes Isa. Ils ne sont pas de la variation de l'autre afin de l'appelant que "variable" est inapproprié
donc, lw,sw signifie charger et stocker pour MIPS et ldr,str moyens même pour les BRAS?
OriginalL'auteur Mail | 2014-11-02
Vous devez vous connecter pour publier un commentaire.
Oui lw et sw sont charger et stocker mot pour mips. ldr et str sont charger et stocker un mot de bras. et pour x86 vous utilisez mov.
Mips a généralement une syntaxe qui utilise $0-$31 ou encore plus dégoûtant $v0, etc. Bras et beaucoup d'autres utilisent des r et un certain nombre r0-rn, (certaines personnes tentent de uglify que aussi bien avec des noms d'alias).
ARM et MIPS sont des concurrents, ils ne sont pas de la même compagnie qui n'est pas le même architectures. MIPS machine de codage qui tombe en quelques catégories que vous avez mentionné, le BRAS a plusieurs, pour quelque raison que ce soit bon ou mauvais, ce sont à la fois bien documenté dans le MIPS ou le BRAS de la documentation.
Donc autant que l'instruction de codage qui est déterminé par les inventeurs du jeu d'instructions, quelles que soient les raisons de leur choix, le bon, le mauvais, ou le contraire, c'est leur chose qu'ils peuvent faire ce qu'ils veulent.
Aussi loin QUE l'assemblée de la syntaxe du langage, l'isa inventeur crée généralement un pour aller avec la documentation du jeu d'instructions, et qu'elles créent en général ou embaucher quelqu'un pour faire un assembleur. Mais l'assembleur (le logiciel qui prend de l'assemblée de la langue et de fait machine code) les auteurs en fin de compte dicter l'assemblée de la syntaxe du langage, et ils n'ont pas à se conformer à la syntaxe de l'administration chargée de la documentation. Et il n'y a aucune raison pour que toutes les deux séparément créé assembleurs d'utiliser la même syntaxe. Au fil du temps, par exemple les nombres hexadécimaux avait un signe dollar $12 ou un suiveur h 12h, mais maintenant, vous voyez souvent la syntaxe du C pris en charge ou privilégiées 0x12. Parfois, vous voyez indirects, plus une compensation de 12(r3) ou [r3,#12] ou de décrire exactement la même chose.
droite, ce que vous apprenez quand vous apprenez quelques isa qu'ils sont aussi semblables qu'ils sont différents, charger, stocker, ajouter, ou, et, habituellement, et d'autres opérations de base, mais les nuances et certainement la syntaxe de l'asm varient largement...
Très vrai, la syntaxe est totalement assembleur dépendantes (AT&T vs Intel syntaxe pour x86 par exemple); mais les constructions sont tous très similaires, il suffit de lire à travers elle. Si ces nuances peut être amusant aussi comme branche de retard les fentes dans les MIPS et postule l'exécution dans les BRAS.
et oui c'est l'exemple classique de cela, je veux juste que les gens à comprendre que l'assemblée de la langue n'est pas un standard comme Python ou C++ ou Java, etc, dans une certaine mesure, il est complètement inventé par l'auteur du programme, bien que l'auteur de la n-ième de l'outil est généralement sage de se conformer ou d'avoir un mode de compatibilité pour un outil existant pour que les gens puissent se déplacer de leur code, mais il n'est pas toujours le cas.
OriginalL'auteur old_timer