Assembleur vax

Fermé
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 - 26 mai 2009 à 16:48
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 29 mai 2009 à 09:22
Bonjour,

Existe t-il un rotate (decalage des bits un a un a dr ou ga) dans le jeu d'instructions du vax ?

l'operation consisterai en le stockage de constants (ex 1 3 2 7 5) dans un registre

et pouvoir effectuer par exemple 3 rotate right qui donnerai : 2 7 5 1 3

merci d'avance

crazyghandi

7 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
26 mai 2009 à 16:51
bonjour,

sois je n'ai pas bien tout compris, sois tu t'es planté....
tu veux faire un rotate bit a bit de 1 3 2 7 5 qui donnerai 2 7 5 1 3

moi ce que je vois, c'est que la, tu n'opères pas sur des valeurs binaires (contenues dans un octet, ou dans une variable de taille plus grande), mais que tu fais une sorte de rotate sur des décimaux....

je ne pense pas qu'aucun proc ne gère ca ..
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
26 mai 2009 à 18:04
merci beaucoup pour ta reponse

je pense que tu as raison

peut etre puis-je faire une valeur par case memoire ?
savez vous combien on peut stocker dans un registre ?

et peut on facilement manipuler les registres pour faire ce rotate ?

merci d'avance
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
26 mai 2009 à 18:13
je te conseillerai de faire ce qu'on appelle une liste chainée en C: (a toi de te débrouiller poru l'assembleur)

struct element
{
int valeur;
element* suivant;
};

chaque élément connaissant le suivant
et tu fais une méthode qui prend le dernier et le met en premier, ou alors met le premier à la fin... il n'y a cas changer quelques pointeurs à chaque fois
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
26 mai 2009 à 18:23
aaah j'y avais franchement pas pensé et je connais bien les malloc et listes chainees en c

je vais essayer ca je posterai les resultats a fur et a mesure

encore merci
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
28 mai 2009 à 09:14
ok. Car ce n'est pas du bit à bit que tu veux faire, mais plutot une rotation de nombre dans un tableau ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
28 mai 2009 à 23:12
bon au final je traite mon tableau case par case
en incrementant la colonne du curseur et en utilisant
des read_from_display

comme je suis amene a faire ca souvent je voudrais faire une macro
mais au lieu de faire passer les 7 char a recuperer je voudrais les mettre dans une structure

comment declare t on une structure sil vous plait et comment en appel t on les elements ?

merci d'avance
crazyghandi
0
kryoportail Messages postés 222 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 22 mai 2014 125
28 mai 2009 à 23:16
Salut,

J'ai consulté rapidement la page : https://fr.wikipedia.org/wiki/VAX

Mais ça me dit pas à quoi ça ressemble !!??? Je connais pas ce processeur, c'est un processeur utilisé dans de vieux ordi, c'est ça !???

Note : c'est juste pour enrichir ma culture G !!...
Enfin comme les autres quand on parle de rotation en assembleur, c'est sur une valeur binaire...
00010000 -> 00100000 (pour un registre 8bits, décalage à gauche)
Sur certain processeur (le 68hc11 par exemple, il est possible de faire tomber le bit qui disparay dans une 'carry', pour etre utilisé apres... pour faire un teste par exemple...)

Amicalement,
S@M...
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
29 mai 2009 à 09:22
décalage de 1 vers la gauche: multiplication du nombre par 2 (la base) ;)
en base 10, un décalage vers la gauche -> multiplication par 10
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
28 mai 2009 à 23:32
en effet je m'etais trompe au debut en confondant avec l'assembleur machine

le vax est un jeu d'instruction proc, gestion de registres etc un peu different et c'est vrai que c'est antique comme technologie

quelqu'un peut nous eclairer sur la structure ?

merci
0