trouver un mot dans la RAM
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 33

trouver un mot dans la RAM



  1. #1
    invited633afae

    Unhappy trouver un mot dans la RAM


    ------

    bonjour,
    pour TP sur Emu 8086 il me faut d écrire un programme s il existe le mot 'pass' dans une zone de la RAM de 200H à 220H ,je sais déja comment trouver chaque lettre mais j sais pas comment les assembler pour trouver le mot pass
    s il vous plais qui peut m aider ???????? voila le program que j ai fait pour une lettre :
    org 100H
    mov AL, 'p'
    mov SI , 200H
    mov CX , 20
    BCLE:
    cmp AL,[SI]
    JNE OUI
    INC SI
    loop BCLE
    CLC
    JMP SOS
    OUI :
    STP
    SOS:
    ret

    -----

  2. #2
    invite2d7144a7

    Re : trouver un mot dans la RAM

    Bonjour,

    Essaie de voir comment tu ferais à la main, en ne lisant qu'une lettre à la fois ...

    ... et tu auras ton algorithme.

  3. #3
    inviteda3670f6

    Re : trouver un mot dans la RAM

    Le mot "pass" contient 4 caractères, ça fait un long (32 bits). Suffit de chercher cette occurrence en mémoire, en faisant attention à l'endianness, et à l'incrément, car le mot n'est pas forcément aligné...
    A plus

  4. #4
    inviteccac9361

    Re : trouver un mot dans la RAM

    Bonjour,

    C'est un processeur 16 bits.
    http://fr.wikipedia.org/wiki/Intel_8086
    Donc c'est vrai que c'est possible, mais en deux temps.

    La methode "clean" serait de reserver quelques octets pour y ecrire 'pass', ce qui permettrait de changer cette valeur et l'etendre facilement.
    Ensuite faire une comparaison de la chaine de ce segment avec la chaine en memoire, et on incremente d'un octet le debut de la chaine.

    Ici les instructions du 80x86 :
    http://www.penguin.cz/~literakl/intel/intel.html
    On voit par exemple qu'il existe le CMPS
    http://www.penguin.cz/~literakl/intel/c.html#CMPS

    Mais j'ai un doute, c'est à partir du 80286 je crains.
    Comme on n'a pas d'instructions tres complexes qui permettent de faire ça en une fois sur d'autres processeurs Intel, le 8086, on doit faire cette operation par une boucle à 4 iterations.
    8086 Instruction Set

    Voir par exemple page 34 ici pour la definition d'une zone de données.
    Cours Assembleur 8086

  5. A voir en vidéo sur Futura
  6. #5
    inviteda3670f6

    Re : trouver un mot dans la RAM

    J'ignorais qu'il existait encore des 8086, et qu'on impose de telles limitations à l'ère du mmx/sse/avx.
    Ha les profs...
    A plus

  7. #6
    Jack
    Modérateur

    Re : trouver un mot dans la RAM

    Citation Envoyé par pazcal Voir le message
    J'ignorais qu'il existait encore des 8086, et qu'on impose de telles limitations à l'ère du mmx/sse/avx.
    Ha les profs...
    A plus
    Ca dénote d'une démarche pédagogique. Je ne pense pas qu'il faille forcément découvrir le fonctionnement d'un microprocesseur en partant d'un i3 ou autre. Ce sont des merveilles technologiques, mais tellement complexes ... Vas expliquer ne serait-ce que la mmu.

    C'est un peu comme si tu voulais montrer qu'un calcul de surface doit forcément passer par le calcul intégral .

    A+

  8. #7
    inviteda3670f6

    Re : trouver un mot dans la RAM

    Oui, mais de là à coder sur des processeurs qui existent plus... C'est un peu comme si on imposait de dessiner sur des parois de cavernes pour ton calcul de surface... Rien n'empêche de bosser sur un pentium en se limitant à l'utilisation des registres AX, BX, ... Ou sinon, faire un choix plus judicieux parmi le vaste pannel de CPU, mieux adaptés au codage assembleur que les ia32/ia64...
    A plus

  9. #8
    Jack
    Modérateur

    Re : trouver un mot dans la RAM

    Je pense également que le choix du 8086 vient du simulateur : emu8086. Je ne connais pas de simulateur de pentium.

    A+

  10. #9
    inviteda3670f6

    Re : trouver un mot dans la RAM

    Citation Envoyé par Jack Voir le message
    Je pense également que le choix du 8086 vient du simulateur : emu8086. Je ne connais pas de simulateur de pentium.

    A+
    Ben un PC, c'est pas mal comme simulateur de pentium
    Les outils de dev (C, asm, debug, profiler, ...) sont gratuits en plus...
    Aujourd'hui, qui programme encore en 8086 en se limitant à l'architecture native 16 bits?
    N'importe quel bout de code fait appel à EAX. Sinon on trouve des simulateurs gratuits pour ARM7/ARM9 sur PC, au moins on est sur du coeur d'actualité. Je pige pas qu'on apprenne à programmer sur des bazar obsolètes. Il y a encore des profs qui font des cours de 6800, ou de Z80 parce qu'ils ont appris ça à l'école... Après on s'étonne que les mecs qui sortent de l'école font des choix architecturaux complètement surréaliste... Non j'suis pas vénèr
    A plus

  11. #10
    Jack
    Modérateur

    Re : trouver un mot dans la RAM

    Pas si évident. J'ai fait 10 ans dans le privé avant d'enseigner. Et j'ai alors découvert des choses auxquelles je ne m'attendais pas: le problème, c'est que nous, on a compris, mais ce n'est pas forcément le cas de tout le monde.
    Par exemple, bien que ce ne sois pas vraiment au programme, j'ai donné des cours d'asm sur 8086 (si si ) parce que je suis persuadé qu'en info industrielle il faut des notions minimum d'architecture matérielle et qu'un peu d'asm remet bien souvent les choses à leur place sur les capacités de traitement d'un µprocesseur.
    Bref pourquoi le 8086? Parce que c'est un micro "simple".
    Et bien j'ai fini par abandonner en voyant le temps et l'énergie dépensée pour obtenir un minimum de résultat. Rien que la segmentation de la mémoire ou les problèmes d'adressage présentent des obstacles insurmontables pour certains.
    Alors les préparer pour être efficace en fin de formation, disons bac+2 ... c'est de la science fiction. Seuls les meilleurs y parviendront en poursuivant leurs études. Durant cette période, ils auront eu le temps de se spécialiser, de faire des projets.

    Mais pour le b-a-ba, et la découverte, je reste persuadé (et ce n'est que mon avis) que le vieux 8086 est suffisant. ne pense pas cependant que je sois rétrograde car pour les projets, j'en fais bosser certains sur des carte embarquée à base d'ARM notamment.

    A+

  12. #11
    inviteda3670f6

    Re : trouver un mot dans la RAM

    Citation Envoyé par Jack Voir le message
    Pas si évident. J'ai fait 10 ans dans le privé avant d'enseigner. Et j'ai alors découvert des choses auxquelles je ne m'attendais pas: le problème, c'est que nous, on a compris, mais ce n'est pas forcément le cas de tout le monde.
    Par exemple, bien que ce ne sois pas vraiment au programme, j'ai donné des cours d'asm sur 8086 (si si ) parce que je suis persuadé qu'en info industrielle il faut des notions minimum d'architecture matérielle et qu'un peu d'asm remet bien souvent les choses à leur place sur les capacités de traitement d'un µprocesseur.
    Bref pourquoi le 8086? Parce que c'est un micro "simple".
    Et bien j'ai fini par abandonner en voyant le temps et l'énergie dépensée pour obtenir un minimum de résultat. Rien que la segmentation de la mémoire ou les problèmes d'adressage présentent des obstacles insurmontables pour certains.
    Alors les préparer pour être efficace en fin de formation, disons bac+2 ... c'est de la science fiction. Seuls les meilleurs y parviendront en poursuivant leurs études. Durant cette période, ils auront eu le temps de se spécialiser, de faire des projets.

    Mais pour le b-a-ba, et la découverte, je reste persuadé (et ce n'est que mon avis) que le vieux 8086 est suffisant. ne pense pas cependant que je sois rétrograde car pour les projets, j'en fais bosser certains sur des carte embarquée à base d'ARM notamment.

    A+
    Je ne discute pas de l'utilité de coder en assembleur, même sur x86... Juste de limiter à l'utilisation du jeu natif x86. Sinon, ça reste un des micros les plus complexe en terme de jeu d'instruction...
    Moi si je devais apprendre l'assembleur à des élèves, je leur mettrais un msp430, un AVR, ou un freescale entre les mains...
    Après, on est d'accord que en bac+2 on ne peut qu'inculquer les concepts de base, et ça s'arrête là. Mais inculquer des concepts "up to date" n'est pas plus compliqué, ça demande juste une remis een question des profs. Ce que je déplore trop souvent, c'est de voir des enseignants (même dans les formations à2000€/semaine) qui restent sur des trucs d'antan... C'est pas compliqué de se mettre un tout petit peu à la page, surtout avec les moyens actuels, le net, les refs design à des prix ridicules (quelques euros)... Après, je suis tout à fait d'accord avec toi, on tombe sur des design farfelus, dans le privé, ou dans le public d'ailleurs. Mais la cause vient d'où?
    A plus

  13. #12
    inviteccac9361

    Re : trouver un mot dans la RAM

    Bonsoir,

    Disons qu'à notre époque, l'assembleur n'a plus grand interet, sinon lorsqu'on doit être absolument maitre du code sous-jacent.
    Les bons compilateurs utilisent les bonnes instructions et registres en fonction du probleme posé.
    Ils gerent les piplines des microprocesseurs (et peut-être ceux des picoprocesseurs de demain ).

    Citation Envoyé par Wikipedia
    Interdépendance procédurale[modifier]Se pose le même problème avec les sauts :
    MOV R1, #1000 // R1 = 1000
    JUMP R1 // Saut inconditionnel
    R1 ne contient pas encore la valeur 1000 au moment où l'instruction de saut va s'exécuter.

    Une solution possible à ces deux problèmes est d'insérer une instruction entre les deux qui sont interdépendantes. Prenons par exemple la séquence suivante :

    1: A = B + C
    2: D = A + C
    3: E = F + B
    http://fr.wikipedia.org/wiki/Pipeline_(informatique)

    Peut-on croire que l'on peut faire mieux qu'un bon assembleur en terme de performance, pour un algorithme donné ?
    Pas sur. Bien que sur le 80286 c'est faisable.

    Enfin, il faut quand même des informaticiens pour fabriquers les compilateurs et qui programment en langage machine.
    http://fr.wikipedia.org/wiki/Langage_machine

  14. #13
    invited633afae

    Re : trouver un mot dans la RAM

    bonjour ,
    juste pour information on utilise le 8086 car on vient de commencer la programmation !!
    bon qui peut me dire est ce que ce program est juste pour trouver le mot pass
    Org 100h
    Mov al,’p’
    Mov si ,200h
    Mov cx,20
    Bcle:
    Cmp al,[si]
    Jne non
    Inc si
    Mov al,’a’
    Cmp al,[si]
    Jne non
    Inc si
    Mov al,’s’
    Cmp al,[si]
    Jne non
    Inc si
    Cmp al,[si]
    Jne non
    stc
    jmp oui
    non :
    mov al, ‘p’
    inc si
    loop bcle
    oui :
    ret


  15. #14
    Jack
    Modérateur

    Re : trouver un mot dans la RAM

    Elle est bizarre ta question. Tu n'as qu'à essayer pour avoir ta réponse.

    A+

  16. #15
    invited633afae

    Re : trouver un mot dans la RAM

    j ai essayer et c etait juste mais le probléme est :ce programme cherche pass toute entier et aussi chaque lettre seul . mais moi je ne veux que le mot "pass" pas p a s s

  17. #16
    Jack
    Modérateur

    Re : trouver un mot dans la RAM

    et c'est quoi la différence finalement? Il n'y a pas de registres 32 bits, donc pour comparer 4 caractères d'un coup, ce n'est pas possible.

    A+

  18. #17
    invite948de9fa

    Re : trouver un mot dans la RAM

    bonjour,

    ton programme me paraît juste, étant donné que tu recherches les 4 lettres consécutives, et si ces 4 lettres se sont pas trouvées consécutivement tu recommence a checher donc je pense que ca doit être bon. par contre je vois pas de limite à l'incrémentation de ta boucle principale, ni de qu'est-ce qu'on fait quand on est arrivé à la fin et qu'on a rien trouvé.

    (c'est peut-être dans les 4 lignes du haut, je n'ai pas encore étudié les recherches RAM et je ne connais pas ce microcontrôleur et son jeu d'instructions)

  19. #18
    invited633afae

    Re : trouver un mot dans la RAM

    bonjour ,
    pour l incrementation j ai déja mis CX,20 donc ça va s' arrêter à 220H ,et si on trouve rien le flag C =0 .
    et en tous cas merci de vos rèponses

  20. #19
    invited633afae

    Re : trouver un mot dans la RAM

    bonjour , mais SVP SVP aidez moi, ça fait plus d une semaine que je cherches à faire ce programme !!! j arrive pas à trouver le mot "pass " tout entier!!

  21. #20
    Jack
    Modérateur

    Re : trouver un mot dans la RAM

    Le mot de passe sera toujours "pass"?

    A+

  22. #21
    Jack
    Modérateur

    Re : trouver un mot dans la RAM

    et on fait quoi ensuite si on trouve le mot de passe?

    A+

  23. #22
    invited633afae

    Re : trouver un mot dans la RAM

    le programme que j ai ecrit cherche les lettre du mot pass pas le mot entier , mais ce que je veux c est le mot pass et ça veux dire que je veux que les lettre soient suivi
    exp : p en 200H et a à 201H et s à 202h et s à 203h
    mais il faut chercher au long de 200H à 220H
    voilà !!!

  24. #23
    invited633afae

    Re : trouver un mot dans la RAM

    si on trouve le mot de pass le flag C =1
    c est tout!!

  25. #24
    Jack
    Modérateur

    Re : trouver un mot dans la RAM

    mais il faut chercher au long de 200H à 220H
    Je ne comprends pas ce que tu veux dire. Ça veux dire qu'il ne commence pas forcément à l'adresse 200H?

    A+
    Dernière modification par Jack ; 03/05/2011 à 21h39.

  26. #25
    Jack
    Modérateur

    Re : trouver un mot dans la RAM

    Aller, c'est mon jour de bonté. je ne pensais pas me remettre à l'assembleur, mais bon, ça me rajeunit.

    Voilà un exemple:
    Code:
    name "pass"   ; fichier de sortie
    
         org  100h
         lea  si, msg  ;adresse du mot à trouver    
    bcl1:     
         lea  di, pass ;adresse du mot de référence
         mov  cx, 4  ; longueur du mot de passe
    repe cmpsb
         jz   correct
         inc  si
         cmp  si, offset (msg + 0fdh)
         jnz  bcl1  ; tant qu'on a pas tout cherché
         clc  ;pas trouvé: carry = 0   
         ret     
         
    correct: 
         stc  ;trouvé: carry = 1
         ret  
         
    pass db   "pass"     
    
    
         org  200h
    msg  db   "  pass"
    si tu utilises emu8086, il faudra virer le org 200h. Je n'ai pas compris si c'est un bug ou non mais bizarrement si est bien initialisé à 200h, mais les données situées à cette adresse sont en fait mises au bout des précédentes, comme si le org 200h n'était pas là.

    Je n'ai pas envie de creuser plus que ça. En tout cas, ça marche.

    A+

  27. #26
    invite948de9fa

    Re : trouver un mot dans la RAM

    bonjour,
    question con mais qui risque d'être utile: est-ce que tu es sûre que le mot Pass est écrit dans la ram dans ton panel de recherche (200H -->220H), bien avec la syntaxe que tu lui demande dans le programme (majuscules, j'en sais rien moi ce qu'il peut y avoir d'autre)

  28. #27
    invited633afae

    Re : trouver un mot dans la RAM

    merci jack de ton program !!
    mais tu sais j ai rien compris car je trouve que c est un peu difficile pour moi ce que t as ecrit (comme etant débutante dans ce domaine ) donc y a des instruction que t as ecrit que je comprends pas
    Je ne comprends pas ce que tu veux dire. Ça veux dire qu'il ne commence pas forcément à l'adresse 200H?
    oui c est ce que je veux dire l important est que les lettres soit succésives pour former le mot "pass"
    en tout cas merci beaucoup !!

  29. #28
    invited633afae

    Re : trouver un mot dans la RAM

    question con mais qui risque d'être utile: est-ce que tu es sûre que le mot Pass est écrit dans la ram dans ton panel de recherche (200H -->220H), bien avec la syntaxe que tu lui demande dans le programme (majuscules, j'en sais rien moi ce qu'il peut y avoir d'autre)
    bonne question remace ;
    c est moi qui va ecrit le mot pass dans la RAM pour la premiere operation et dans la deusieme je vais pas l ecrire complaitement . l interet ici est de voit le fonctionement des flag parce que si on trouve le mot "pass" c=1 si non c=0
    et c est ça le but de l exercice et c est ce que j ai pas pu faire car comme j ai deja dit le programme que j ai ecrit il cherche que les lettre pas le mot entier .( majuscule ou non c est pas inportant pour les instruction de l EMU 8086 )
    a+

  30. #29
    inviteccac9361

    Re : trouver un mot dans la RAM

    Bonjour,

    Citation Envoyé par Saraviva
    merci jack de ton program !!
    mais tu sais j ai rien compris car je trouve que c est un peu difficile pour moi ce que t as ecrit (comme etant débutante dans ce domaine ) donc y a des instruction que t as ecrit que je comprends pas
    C'est comprehensible.
    Mais je vais te donner mon point de vue sur ce programme.
    Il est Nickel, parcimonie des instructions, structuré, avec des commentaires.
    J'en profite au passage pour rappeler que les commentaires dans un source, c'est aussi tres utile à celui qui les écrit.

    Citation Envoyé par saraviva
    bonne question remace ;
    c est moi qui va ecrit le mot pass dans la RAM pour la premiere operation et dans la deusieme je vais pas l ecrire complaitement
    Apparement c'est déja prévu.

    Code:
    org  200h
    msg  db   "  pass"

  31. #30
    invited633afae

    Re : trouver un mot dans la RAM

    j ai essayer le programme de jack pour mieux comprendre mais ça n a pas marché !!!
    et svp qui pourra corriger mon programme ???? il est obligatoir d utiliser les instruction que j ai mise

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Augmenter la RAM de mon PC portable- RAM MAX?
    Par invite3c35244f dans le forum Matériel - Hardware
    Réponses: 20
    Dernier message: 02/03/2010, 14h09
  2. ATmega : écrire dans la ram
    Par invite74119562 dans le forum Électronique
    Réponses: 6
    Dernier message: 06/08/2009, 16h12
  3. Ajout de ram dans portable pb sous XP
    Par invitef7a39d7f dans le forum Matériel - Hardware
    Réponses: 2
    Dernier message: 01/03/2009, 12h27
  4. trouver un mot qui commence par x ou w
    Par invite2c70bf4d dans le forum Archives
    Réponses: 11
    Dernier message: 28/09/2006, 22h38