Programme assembleur (Aide précieuse)

Franck -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

j'ai un petit problème. Je dois "écrire un programme assembleur qui place dans une variable y l'opposé de la valeur contenue dans la variable x (en utilisant une représentation en complément à 2)."

Mes compétences dans le langage assembleur sont encore très faibles, donc j'ai vraiment besoin de votre aide.

Quelqu'un pourrait-il m'aider à solutionner ce problème ?

Cordialement.
Configuration: Windows XP
Firefox 3.0.3

6 réponses

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Plus simple: l'opérande neg fait tout seul le complément à deux :-)
    0
  2. Franck
     
    Bonjour,

    merci pour vos réponses, mais ceci est trop compliqué pour mon niveau. J'ai tout juste commencé les cours (9 heures seulement) sur le langage d'assemblage, donc mettre un langage de pro ferait penser que cela ne vient pas de moi.

    J'avais trouvé la réponse sur un PDF sur Internet, elle est très proche de ce que vous avez écrit, mais ne correspond pas à mon niveau actuel.

    Le résultat semblerait être :

    IN
    STA $80
    LDA #0
    SDBA $80
    END   
    


    car tout le monde a mis ça !!

    Merci quand même pour votre aide.

    Cordialement.
    0
  3. Franck
     
    Bonjour,

    j'ai recopié la question au mot près, pas d'indication sur l'assembleur.

    Mais effectivement j'aurais du préciser car on est sur le 86 pour le moment.

    Je découvre, fallait-il savoir qu'il en existe d'autres !

    Merci quand même.
    0
    1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      Un langage asssembleur pour chaque famille (architecture) de processeur.
      Donc un assembleur pour
      _ les x86, processeur des PC
      _ les x86-64
      _ les sparc
      _ les mips
      _ les arm
      _ les m68k
      _ les alpha
      etc j'en passe, y'en a tellement...

      Un exemple des architectures que supporte le noyau Linux:
      alpha  blackfin  h8300  m68knommu  parisc   sh       um
      arm    cris      i386   m32r     mips       powerpc  sparc    x86
      avr32  frv       ia64   m68k     mn10300    s390     sparc64  xtensa

      Tu verras du code assembleur pour tous dedans :-)
      0
  4. chuka Messages postés 980 Statut Membre 379
     
    Salut,
    pour masm cela serait un truc du genre:
    .data
    nombre sbyte 00111001b
    .code
    main PROC
    mov al,nombre
    NOT al
    add al,1
    exit
    main endp
    end main
    le bit de parité est armée!!
    Je suis pas un expert en assembleur, mais j'espere ca pourra t'aider!!
    @+
    PS: si tu utilises nasm, la syntaxe doit etre un peu différente, je te laisse regarder les excellents tuto sur ce point de Killian!!!
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    On dirait surtout que tu ne nous a pas dit quel assembleur tu voulais. On t'as donné une solution pour les processeurs x86 mais là, on dirait que c'est autre chose :-)
    -1
  7. bitrate Messages postés 441 Date d'inscription   Statut Membre Dernière intervention   98
     
    exact faut déjà savoir de quel processeur il s'agit ^^

    sous x86 c'est un truc du genre :

    mov eax,xxx ; source
    mov ecx,eax ; dest
    neg ecx ; -(eax)
    -1