hamburger_de_dinde
Messages postés5Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention13 octobre 2004
-
13 oct. 2004 à 18:32
cs_fiduce
Messages postés3Date d'inscriptionmercredi 10 novembre 2004StatutMembreDernière intervention10 novembre 2004
-
10 nov. 2004 à 16:46
Que signifie réellement --> assume CS:code , DS:data ???
Puisque, dans le code, on écrit quand meme MOV AX, data et MOV DS, AX. Est-ce utilde d'écrire "assume" en début de programme? Je n'en comprends pas vraiment l'utilité.
cs_fiduce
Messages postés3Date d'inscriptionmercredi 10 novembre 2004StatutMembreDernière intervention10 novembre 2004 10 nov. 2004 à 16:46
Pas sûr que la réponse précédente soit exacte ...
J'ai pas fait d'assembleur depuis une quinzaine d'années, mais je crois que ASSUME est davantage une "directive d'assemblage" permettant d'indiquer à l'assembleur comment calculer les déplacements (dans le cas où le segment base est implicite). En gros, ça permet de dire à l'assembleur (indépendament de la valeur réelle contenue dans CS ou DS) quelle base utiliser quand un MOV est fait (avec le segment data comme base) ou quand un saut court est fait (avec CS par défaut).
On peut d'ailleurs s'amuser à modifier la valeur de DS (sans en informer l'assembleur) ... résultat : les déplacements restent calculés en fonction de la distance au label spécifié dans la clause ASSUME ...