Le MIPS R10000 et l'UltraSPARC possèdent une architecture dite load/store. Seules les instructions load ou store peuvent accéder à la mémoire. Les données doivent être chargées dans des registres avant de pouvoir être utilisées par des opérations.
À l'inverse, un grand nombre d'instructions du PentiumPro peuvent accéder une ou deux de leurs opérandes en mémoire. Cette particularité limite l'usage des instructions de lecture et d'écriture en mémoire.
L'utilisation d'un sémaphore peut se faire grâce aux instructions Load Linked et Store Conditionnal qui permettent un accès atomique à la mémoire.
Le MIPS R10000 met en oeuvre les modes d'organisation des données big-endian et little-endian.
L'UltraSPARC met en oeuvre un mode d'organisation des données big-endian pour toutes les instructions. Mais il est possible d'accéder aux données dans le mode d'organisation little-endian.
À noter que les déplacements de données d'un emplacement mémoire à un autre sont réalisés par les instructions de déplacement de chaînes de caractères (string operations).
D'autre part, les segments particuliers comme les piles sont adressés par des instructions spécifiques, PUSH et POP. L'instruction PUSH écrit une constante ou le contenu d'un registre à l'emplacement mémoire pointé comme sommet de pile dans le segment <<pile>> courant. L'instruction POP charge dans un registre le contenu du sommet de pile. Ces deux opérations incluent la mise à jour du pointeur de sommet de pile.
Le PentiumPro met en oeuvre un mode d'organisation des données little-endian pour toutes les instructions.
Les instructions arithmétiques et logiques regroupent l'ensemble des instructions de calcul : multiplication, addition, soustraction, décalage, conversion... Certaines instructions sont particulières à chaque microprocesseur, comme nous le montrons dans les paragraphes suivants. À noter que les trois jeux d'instructions mettent en oeuvre des instructions conditional-move qui permettent d'éviter de nombreux branchements.
Contrairement aux microprocesseurs implémentant la norme SPARC V8, la norme SPARC V9 met en oeuvre des instructions de multiplication et de division utilisant des opérandes sur 64 bits. Bien entendu, les instructions manipulant des données sur 32 bits sont conservées de manière à assurer une compatibilité ascendante.
Par ailleurs, le PentiumPro dispose d'un jeu d'instructions arithmétiques et logiques assez proche des deux autres microprocesseurs, la principale différence résidant dans les modes d'accès aux données. En effet, les instructions entières du PentiumPro peuvent adresser une de leurs deux opérandes en mémoire. En plus des instructions classiques, le PentiumPro possède des instructions sur des décimaux. Elles permettent de convertir les contenus des registres AL et AH dans un des deux formats décimaux. Ces instructions, associées aux instructions arithmétiques binaires, permettent une bonne exécution de codes décimaux. Ainsi, le PentiumPro offre la possibilité de ranger les données en mémoire dans un format décimal.
Les instructions de contrôle modifient la valeur du compteur ordinal. Ce sont les branchements conditionnels, les branchements inconditionnels, les appels et les retours de procédures. On notera que les branchements peuvent être conditionnels ou non et absolus ou relatifs.
Sur le MIPS R10000, le branchement peut être relatif au compteur ordinal (16 bits signés) ou absolu. Lorsque le saut est absolu, les 26 bits du champ immédiat sont décalés deux fois à gauche puis concaténés aux bits de poids fort du compteur ordinal pour obtenir l'adresse absolue de la cible. Lorsque le saut est indirect, l'adresse cible est fournie par le contenu d'un registre.
Comme ses prédécesseurs, le MIPS R10000 procure un test et un branchement conditionnel en une seule instruction, si le test est fait sur les entiers. La condition est soit l'égalité des deux registres, soit la comparaison d'un registre par rapport à zéro (), ceci implique en fait souvent une instruction supplémentaire de soustraction pour la comparaison de deux registres.
Les opérations flottantes affectent des codes conditions. Quand le test est réalisé sur des opérandes flottantes, un registre de code condition est utilisé. Huit codes conditions sont permis. Quatre instructions de branchements dit flottants utilisent ces codes conditions : deux de ces instructions sont des extensions de l'architecture MIPS I (branchement sur codes conditions flottants vrai ou faux) alors que les deux autres sont plutôt des extensions de l'architecture MIPS III.
L'architecture MIPS fournit une instruction d'appel de procédure qui permet d'effectuer simultanément le saut à la procédure appelée et la sauvegarde de l'adresse de retour (adresse de l'instruction qui suit le delay slot) dans le registre R31. Cette instruction est appelée Jump And Link. L'exemple ci-dessous illustre son utilisation. L'utilisation de l'instruction plus classique jr permet de revenir naturellement au programme appelant.
Le jeu d'instructions définit par la norme SPARC V9 met en oeuvre des codes conditions pour les branchements conditionnels. Chaque opération peut produire une série de codes conditions permettant de savoir si le résultat de l'opération est positif, négatif... Ces codes conditions servent notamment pour les instructions de branchements. Un des avantages des codes conditions est qu'il n'est pas nécessaire d'effectuer de comparaisons. Il n'y a donc pas d'instruction de comparaison dans le jeu d'instructions. Pour comparer deux registres, il suffit de faire une soustraction de ces deux registres.
Comme le MIPS R10000, l'UltraSPARC met en oeuvre une technique de branchement retardé. pour certains branchements, l'exécution de l'instruction du delay slot (instruction qui suit le branchement) n'est validée que si le branchement est pris (ou non pris).
À noter que les instructions d'appels de procédure sauvegardent l'adresse de retour dans la pile. L'instruction RET de la procédure appelée utilise cette adresse pour revenir au programme appelant.
La condition d'un branchement conditionnel peut être établie par une opération entière située en amont du saut dans le flot d'instructions (analogue aux codes conditions). La condition s'effectue sur le registre de drapeaux EFLAGS. Il n'existe pas d'instruction de branchement sur condition flottante. Les branchements conditionnés par le résultat d'une opération flottante nécessitent le transfert du registre d'état flottant (voir paragraphe ) dans le registre entier AX afin de pouvoir isoler les drapeaux puis effectuer le test (quatre instructions sont alors nécessaires). La condition d'un branchement peut aussi être contenue dans un registre de comptage dont la valeur est décrémentée à chaque saut (instructions Loop While ECX not Equal...).
Le jeu d'instructions du PentiumPro intègre des instructions pour les langages structurés en blocs. Ces instructions sont destinées à l'exécution des appels et des retours de procédures. L'instruction ENTER range dans la pile toutes les informations qu'il est nécessaire de conserver avant l'exécution d'une procédure. L'instruction LEAVE réalise l'opération inverse
Le jeu d'instructions flottant du MIPS R10000 intègre des instructions de type multiplication-addition flottante. Ces instructions permettent d'effectuer deux calculs flottants pour une seule instruction.
Toutes les instructions flottantes, du PentiumPro, doivent avoir une de leurs opérandes située en sommet de pile (l'autre étant soit en mémoire, soit dans la pile de registres flottants), ce qui représente un sérieux goulot d'étranglement. L'instruction FXCH permet d'échanger le contenu du sommet de pile avec un des autres éléments de la pile flottante. Cette instruction doit être utilisée dans tous les cas où l'on ne veut pas utiliser le sommet de pile comme l'un des opérandes.
Le format interne des flottants est de 80 bits. Les instructions de transfert de données de la mémoire vers le banc de registres flottants effectuent une conversion implicite flottante 32 ou 64 bits vers 80 bits.
Les instructions de comparaison permettent de comparer le registre de sommet de pile avec une autre opérande. Les codes conditions C0, C2, et C3 du mot d'état sont positionnés. Le mot d'état doit être transféré dans un registre entier afin d'y être testé pour effectuer un branchement conditionnel.
Les jeux d'instructions des trois microprocesseurs incluent l'instruction de racine carrée. À noter que cette instruction n'est plus émulée, car les microprocesseurs intègrent une unité de racine carrée.
L'UltraSPARC est un microprocesseur d'usage général qui intègre un jeu d'instructions orienté graphique, le Visual Instruction Set (VIS). Ce jeu d'instructions n'est pas défini par la norme SPARC V9. Ces instructions graphiques manipulent des données sur 8, 16 et 32 bits en parallèle. Les opérandes de ces instructions doivent être des registres flottants. Par exemple, huit valeurs de 8 bits (contenues dans le même registre) peuvent être calculées par une seule instruction. Différents types d'instructions : les instructions de conversion (FEXPAND, FPACK16, FPACK32, FPACKPIX) effectuent des conversions entre plusieurs formats de données ; les instructions arithmétiques et logiques (FPADD15...) sont utilisées pour effectuer des opérations sur des pixels ou des groupes de pixels ; les instructions (ALIGNADDR...) calculent des adresses pour des données non-alignées en mémoire ; les instructions d'accès à la mémoire chargent ou sauvegardent des blocs en mémoire.