Questions sur l'assembleur
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Questions sur l'assembleur



  1. #1
    invited170028e

    Questions sur l'assembleur


    ------

    bonjour tt le monde, bon je debute on assembleur (sous dos 16 bits [bus d'adresse??]) et c'est pas gagné, j'ai donc trouver un cour sur le net que je suis entrain d'étudier, mais il n'explique pas tout ce cours d'ou ces quelques questions:



    1/on ne peut adresser que des octets (8bits) avec les segments et les offset, mais alors comment faire pour adresser un bloc plus gros que 8 bits?, par exemple 32bits (4 octets).

    2/on sait que les registres (AX,DX.....etc) font 16 bits, donc on ne peut pas y stocker une infos ou donnée qui "depasse" ces 16 bits,mais alors comment faire pour calculer des nombres gros ? comme les millions ou les millirads.c'est ici qu'interviennent les flags overflows?

    3/ que veut dire vraiment les modes "protégé" et "réel"?

    4/quand j'écris un programme en assembleur,dois-je toujours veiller à ce que les taille des instructions soient égals à 16 bits exactement ou non ?

    merci pour ceux qui peuvent de me répondre.

    -----

  2. #2
    Jack
    Modérateur

    Re : Questions sur l'assembleur

    sous dos 16 bits [bus d'adresse??]
    Pas de bol, c'est la taille des données

    1/on ne peut adresser que des octets (8bits) avec les segments et les offset, mais alors comment faire pour adresser un bloc plus gros que 8 bits?, par exemple 32bits (4 octets).
    Tu sors ça d'où? Si tu fais un "mov AX,25", c'est une opération sur sur 16 bits puisque AX est un registre 16 bits
    par contre, un "mov AL, 25" travaille bien sur un seul octet.

    2/on sait que les registres (AX,DX.....etc) font 16 bits, donc on ne peut pas y stocker une infos ou donnée qui "depasse" ces 16 bits,mais alors comment faire pour calculer des nombres gros ? comme les millions ou les millirads.c'est ici qu'interviennent les flags overflows?
    Pour stocker des plus grands nombres, on utilise la RAM et on découpe ces nombres en mots de 16 bits. C'est d'ailleurs comme ça que tu fais lorsque tu fais une addition par exemple: tu additionnes les unités, puis les dizaines, puis les centaines, etc.
    l'overflow intervient lorsqu'une opération sur des nombre signés entraine un dépassement de la plus grande valeur possible dans le format considéré (8 ou 16 bits).

    3/ que veut dire vraiment les modes "protégé" et "réel"?
    A partir du 80286 si mes souvenirs sont bons, certaines instructions étaient sites privilégiées et ne pouvaient être exécutées que dans un mode spécial du processeur. ces instructions étaient normalement destinées à l'exécution du système d'exploitation, des drivers, etc.
    4/quand j'écris un programme en assembleur,dois-je toujours veiller à ce que les taille des instructions soient égals à 16 bits exactement ou non ?
    Quand tu écris en assembleur (en toute rigueur en langage d'assemblage) , tu écrits sous forme littérale, du texte donc. C'est l'assembleur qui va traduire ton texte code numérique exécutable par le processeur. Tu ne maitrises donc pas la taille des instructions. De toutes manières, la taille est définie une fois pour toute pour chaque processeur.

    A+

  3. #3
    invite2d7144a7

    Re : Questions sur l'assembleur

    Bonjour,
    Citation Envoyé par Jack Voir le message
    Pas de bol, c'est la taille des données
    Pas de bol, DOS 16 bits tournait parfaitement sur des ordis avec processeur 8088, bus données 8 bits.

  4. #4
    Jack
    Modérateur

    Re : Questions sur l'assembleur

    Pas de bol, DOS 16 bits tournait parfaitement sur des ordis avec processeur 8088, bus données 8 bits.
    Ce qui ne change pas grand chose, c'était une version économique du 8086. L'architecture interne était la même, l'accès à un mot de 16 bits demandait un cycle d'horloge supplémentaire. Le 8088 était bien un microprocesseur 16 bits.

    Je ne comprends donc pas ta remarque

    Quand on parle de win32 ou win64, j'espère que tu es d'accord pour reconnaitre qu'il s'agit bien de la largeur du bus de données

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

    Re : Questions sur l'assembleur

    Citation Envoyé par Jack Voir le message
    Quand on parle de win32 ou win64, j'espère que tu es d'accord pour reconnaitre qu'il s'agit bien de la largeur du bus de données
    Ou tout du moins, la largeur exploitée par le système

  7. #6
    invite4ad25ccf

    Re : Questions sur l'assembleur

    3/ que veut dire vraiment les modes "protégé" et "réel"?
    A partir du 80286 si mes souvenirs sont bons, certaines instructions étaient sites privilégiées et ne pouvaient être exécutées que dans un mode spécial du processeur. ces instructions étaient normalement destinées à l'exécution du système d'exploitation, des drivers, etc.
    Pour être plus précis, le mode réel est un mode ou il n'y a aucune protection de la mémoire, tout le monde peut voir et utiliser l'intégralité de celle ci. Celui-ci n'est plus utilisé que lors du démarrage du PC (compatibilité) et l'OS bascule tout de suite le systeme en mode protégé.

    Le mode protégé au contraire dispose d'une protection de la mémoire et permet beaucoup plus de chose (segmentation / pagination, mémoire virtuelle). La protection se base essentiellement sur les "ring", de 0 à 4, en partant du principe : un ring ne peut acceder à la mémoire que d'un ring équivalent ou supérieur (ie ring 0 à accès a tout (ou presque), ring 4, qu'a la mémoire ring 4).
    En pratique, seul 2 niveaux sont utilisés :
    - ring 0 pour le noyau et les drivers
    - ring 4 pour les applications en mode utilisateur

  8. #7
    invitea98cd54f

    Re : Questions sur l'assembleur

    1/on ne peut adresser que des octets (8bits) avec les segments et les offset, mais alors comment faire pour adresser un bloc plus gros que 8 bits?, par exemple 32bits (4 octets).


    on fait la memoire est segmentee c'est a dire qu'elle est devisee en segment (code segment,stack segment,...) et pour chaque segment il y a un registre qui contient l'adresse du debut de celle-ci.et n'oublier pas que la memoire est paginee(page paire et page impaire)

    et losqu'on veut acceder a un segement on n'indique que l'OFFSET c'est le deplacement par rapport au debut.
    a mon avis pour un block de 32 bit c'est la meme procedure.

  9. #8
    Jack
    Modérateur

    Re : Questions sur l'assembleur

    et n'oublier pas que la memoire est paginee(page paire et page impaire)
    Que veux-tu dire par page paire et page impaire?

    A+

  10. #9
    invitee840409b

    Re : Questions sur l'assembleur

    La pagination n'a à ma connaissance aucun rapport avec des pages. La pagination, c'est le fait de mettre les zones inactives de la RAM sur le disque dur (exemple avec le SWAP sous Linux)

  11. #10
    invitea98cd54f

    Re : Questions sur l'assembleur

    la memoire est divisee en deux partie ( c'est ce qu'on a etudier pour le cas de INTEL uP)
    voir ce lien:http://tic01.tic.ec-lyon.fr/~muller/...emoire.html.fr

  12. #11
    invitea98cd54f

    Re : Questions sur l'assembleur

    c'est qu'elle est devisee en deux pages:
    http://tic01.tic.ec-lyon.fr/~muller/...emoire.html.fr

  13. #12
    invitee840409b

    Re : Questions sur l'assembleur

    Bonjour,

    Il s'agit là d'une structure interne du 8086. Le but est seulement d'accélérer l'accès à la mémoire, en répartissant les données sur deux mémoires.

    Cependant, ça reste invisible du point de vue assembleur (si il fallait compliquer le code, ça aurait été plus simple de mettre les deux mémoires bout à bout, que de les faire se chevaucher)

    Cordialement,
    ProgVal

  14. #13
    Jack
    Modérateur

    Re : Questions sur l'assembleur

    Citation Envoyé par DMOHAMMED Voir le message
    Il ne s'agit pas à proprement parler de pages. Lorsque le 8086 est sorti, les périphériques et mémoires qui existaient étaient plutôt destinés aux microprocesseurs 8 bits. Il a bien fallu trouver un mécanisme qui permette un accès orienté octet à partir d'un bus 16 bits.

    Sur d'autres microprocesseurs, la ligne d'adresse A0 n'existe même pas. Les adresse paires et impaires sont gérées par des signaux spécialisés.

    A+

Discussions similaires

  1. Mon TPE sur les mutations dues aux UV. Questions multiples sur le sujet.
    Par invite1b08dce5 dans le forum TPE / TIPE et autres travaux
    Réponses: 14
    Dernier message: 03/06/2010, 17h25
  2. aide sur les suites je bloque sur mon probleme me reste 2 questions ^^
    Par inviteb4fb8f31 dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 24/04/2009, 15h06
  3. Passage de l'assembleur vers C pour PIC
    Par invite95375788 dans le forum Électronique
    Réponses: 4
    Dernier message: 26/09/2008, 00h26
  4. questions sur le point de vue scientifique sur l'origine
    Par invitee82b5d47 dans le forum Discussions scientifiques
    Réponses: 40
    Dernier message: 30/09/2007, 14h02
  5. Mixer le C et l'assembleur avec IAR dans un fichier source
    Par invite0e1ebad6 dans le forum Électronique
    Réponses: 4
    Dernier message: 14/01/2004, 18h36
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...