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

x86 16-bits Assembleur Discussion :

Langage assembleur 8086


Sujet :

x86 16-bits Assembleur

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 0
    Points
    0
    Par défaut Langage assembleur 8086
    Bonjour,

    J'ai un mini-projet à faire sur la programmation d'un µP 8086 et j'ai besoin d'aide .

    voila l'énoncé :

    COMPTAGE DE SÉQUENCES DE BITS
    Réalisez un programme en assembleur qui détermine le nombre de séquence de n bits à 1 successifs dans une séquence binaire de N octets contenu dans la mémoire.

    on choisit n et N
    exemple n =3 , N=2
    chaque octects est compsé de 8 bits

    N=2 donc 2 octets donc une sequence 16bits
    si on a 1110001111100101 === y'a 2 groupe successive de 3bits ( 11111 donne 1 )

    Merci d'avance pour l'aide et je l’espère le plus vite possible !!

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 371
    Points : 23 626
    Points
    23 626
    Par défaut
    Et alors, qu'est-ce qui t'ennuie dans cet exercice (fort simple au demeurant) ?

    Qu'as-tu réalisé jusqu'ici ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    rien, je n'ai aucune idée je voudrais la réponse au problème !!

  4. #4
    Membre actif Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Points : 230
    Points
    230
    Par défaut


    Commence déjà à écrire l'algorigramme (je ne sais pas si ce terme s'utilise, mais un de mes profs l'utilisait) avant de coder (et montre le ici si tu bloques à un endroit) et ne demande pas bêtement la réponse qui ne t'apportera rien.

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 371
    Points : 23 626
    Points
    23 626
    Par défaut
    Personne ici ne fera ton travail à ta place.

    Utilise les fonctions de décalage de bit. Avec « SHL » ou « SHR », tu peux décaler le contenu d'un registre quelconque ou d'un emplacement en mémoire dans le sens de ton choix. Le bit sortant va dans la retenue C. De là, tu peux incrémenter un autre registre pour mesurer la longueur d'une suite de bits à 1.

  6. #6
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Obsidian est vraiment gentil de te mâcher ainsi le travail

    a+ François

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    voila ce où je suis arrivé
    j'ai pris comme exemple N=2,n=3=BX
    dans l'énoncé il est demandé de mettre la sequence dans lamemoire non pas dans AX comment je dois changer ça ?

    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
    MOV AX,1111011101111001b
    MOV BX,0
    MOV CX,0
    MOV DX,0
    a:INC DX
    CMP DX,16
    JZ d
    SHL AX,1
    JC b
    JMP a
    b:INC CX
    CMP CX,3
    JZ c
    JMP a
    c:INC BX
    MOV CX,0
    JMP a 
    d:HLT

  8. #8
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    de mémoire, les X86 ont une instruction trop magique.

    elle consiste en un test de bit par l'adresse directe du bit, donc, pour trouver la première suite de 16 bits à 1 à partir du 43eme bit du tableau, ça donnerait:

    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
     
    tableau: db 'bonjour, je suis sur un site internet et je poste un code pour voir',0ffh,0ffh,0feh,0
    trouver:
    mov bx,tableau
    mov ax,42
    .zero:
    inc ax
    mov cx,16
    .loop:
    ;;;;;;;;;;;;
    BT [BX],AX ;tester le bit AX du tableau BX
    ;;;;;;;;;;;;
    jnc .zero
    sbb cx,0 ;
    je .ok
    inc ax
    jne .loop
    .no:
    ;code si on a rien trouvé
    jmp .end
    .ok: 
    ;code si on a trouvé
    .end:
    ret
    bien sur, on va dire que le tableau mesure tout pas plus de 65536 bits, soit 8 kilo octets. pas plus.

    ou alors, on prend le jeu 32 bits, pour acceder à tout les bits de 4 gigabits consecutifs.

    l'instruction à retenir, BT, et ses derivés BTR, BTS et BTC.

Discussions similaires

  1. Apprendre le langage assembleur 8086
    Par sheridan08 dans le forum x86 16-bits
    Réponses: 1
    Dernier message: 13/02/2010, 15h20
  2. Exercices en langage assembleur du microprocesseur 8086
    Par lorye dans le forum x86 16-bits
    Réponses: 1
    Dernier message: 10/01/2009, 18h04
  3. Coder en langage Assembleur
    Par sone47 dans le forum Assembleur
    Réponses: 7
    Dernier message: 23/05/2007, 00h18
  4. Tri en Assembleur 8086
    Par zeine77 dans le forum Assembleur
    Réponses: 2
    Dernier message: 20/05/2007, 13h24
  5. Calcul d'équation y=0.125*x+4 en Assembleur 8086
    Par makohsarah dans le forum Assembleur
    Réponses: 14
    Dernier message: 15/12/2004, 02h05

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