IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres architectures Assembleur Discussion :

[68000] Déterminer si un nombre codé sur 16 bits est symétrique ou pas


Sujet :

Autres architectures Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 6
    Par défaut [68000] Déterminer si un nombre codé sur 16 bits est symétrique ou pas
    Bonjour,

    J'essaie de faire un petit programme en qui renvoie si un nombre codé sur 16 bits est symétrique ou pas. J'ai essayé de recopier le nombre dans un registre de données et de l'inverser pour ensuite le comparer au premier, mais je sais pas s'il y a une instruction pour inverser les bits (1 à 0 ou 0 à 1). Alors Je me permets de faire ce sujet pour avoir des indications sur la démarche à suivre ; toute indication sera la bienvenue.

    Je vous remercie d'avance.

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Je trouve la demande assez peu sérieuse parce que :
    mais je connais pas si il'ya un" instruction pour inversée les bits de (1a0 ou 0 a1)
    qu'est qui t’empêche de regarder la doc du 68000 au juste ?

    ROL et ROR est ce que tu cherche ?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 6
    Par défaut
    parce que je débute sur assembleur c'est pour ça est en plus ROR ET ROL je pense que c'est pas vraiment une rotation mais plutôt un décalage vers la droite ou vers la gauche d'un seul bit .
    moi je voulais dire pour vérifier la symétrie du chiffre en binaire je dois le copier et l'inverser et comme ca j'aurais le méme chiffre dans 2 registre ensuite je les soustraient afin est vérifier si j'oubtient ou pas est comme ca j'aurais ma réponse c'est tout .
    mais si vous avez une autre idée je suis prenant et merci

  4. #4
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Exact pour ROL et ROR , ben même si on est débutant sans lire la doc on va bien loin surtout en assembleur.

    Pour ta demande tu n'as qu'a l'inverser a la main
    Montre ton code et on te conseillera.

    Mais ta demande c'est quoi un exercice d'école ? parce que le 68000 c'est un bon processeur et je code assez souvent dessus en asm
    Mais pas mal de monde fait du 68000 en C aussi vu que le compilateur gcc est vraiment pas mauvais pour optimisation sur ce proc

    Si c'est une inversion par bloc de 4 bits alors :
    10E2 devient 2E01 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    move.w #$10E2,d0
     
    	move.w d0,d1
    	move.w d0,d2
    	move.w d0,d3
    	move.w d0,d4
     
    	andi.w #$000F,d1
    	andi.w #$00F0,d2
    	andi.w #$0F00,d3
    	andi.w #$F000,d4
     
    	lsl.w	#8,d1
    	lsl.w	#4,d1
     
    	lsl.w	#4,d2
     
    	lsr.w	#4,d3
     
    	lsr.w	#8,d4
    	lsr.w	#4,d4
     
    	clr.w d0
    	add.w d1,d0
    	add.w d2,d0
    	add.w d3,d0
    	add.w d4,d0
    Code testé sur la Neo Geo

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 6
    Par défaut
    enfaîte c’était un exercice pour un PIC16F84A est c'est la ou j'ai commencer a étudier l'assembleur pour la première fois mais on pas trop avancée , alors cette été j'ai eu une idée de travailler sur le M68000 celui que mon prof ma conseiller si je veux apprendre l'assembleur sur les microprocesseur alors je refait les mémes exercices du PIC16F84 qu'on a eu cette année x) enfin bref , ton code permet d'inverser le chiffre est sa m'aide carrément beaucoup je te remercie je vient de le tester sur EASY68K est ça marche a la perfection
    de mon coté moi je voulais simplement vérifier si le chiffre est symétrique ou pas par exemple : 1010|0101 -> la les 2 octet sont symétrique, moi je cherche a comparer le dernier 0 du premier octet avec le premier 0 du 2éme octets et le 3éme 1 du premier octet avec le 2éme 1 du deuxième etc....

    voici mon code :
    move.w x,$1000 , x = n'importe quelle chiffre en word
    move.b $1000,d1
    move.b $1001,d2
    move.b $1002,d3
    move.b $1003,d4

    cmp d1,d4
    BNE prg
    cmp d2,d3
    BNE prg
    prg move #1,d5 , ajouter un 1 si il est symétrique

  6. #6
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Je suis plutot mauvais en math , je ne comprend pas trop ton truc de symétrie et ça m'aide pas forcément a t'aider , après je trouve ce genre d’exercice peu utile mais c'est mon avis , j'ai appris l'assembleur on me fixant des objectif (on gros a faire un programme en full assembleur).

    moi je cherche a comparer le dernier 0 du premier octet avec le premier 0 du 2éme octets et le 3éme 1 du premier octet avec le 2éme 1 du deuxième
    J'ai pas forcément tout compris mais si tu veux comparer des bit faudra refaire des 'and'.
    D'ailleurs si tu l'a fait en PIC tu n'as qu'a traduire avec ds instruction similaire non ?
    Moi je traduis mes algo en C ou C++ en assembleur donc bon ^^'

    Parce que la de mon point de vue t'apprend pas grand chose sur l'assembleur , oui sur les instructions alors peut être que t'apprend les instructions (mais c'est compliqué d'apprendre move , add , sub , lsr ect ? ) , mais pour moi ton probleme est plus un souci algo que d'assembleur , parce que la a part faire des opérations basique du 68000 tu ne fais rien de plus , pour moi apprendre l'assembleur c'est apprendre une architecture et donc s'améliorer dans la connaissance de l'architecture des ordinateurs , pour cela que je te conseillerai plus d'étudier une vrai machine , parce que faire des exercices école ça m’intéresse pas du tout .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un nombre contenu sur 128 bits
    Par yoyo1811 dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 19/04/2009, 00h23
  2. Réponses: 9
    Dernier message: 30/01/2007, 21h03
  3. [Conception] Convertir un nombre codé en CRC32
    Par sunvialley dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/08/2006, 22h42
  4. Déterminer si un nombre est premier
    Par Fandefruit dans le forum Langage
    Réponses: 7
    Dernier message: 30/12/2005, 10h52
  5. definir un nombre decimal sur 2 numero max apres la vergule
    Par nil dans le forum Bases de données
    Réponses: 5
    Dernier message: 25/02/2004, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo