Accueil > Forum > > > > déclarations des variables en ASM
déclarations des variables en ASM
dimanche 14 décembre 2003 à 11:11:46 |
déclarations des variables en ASM

over flow
|
Bonjour, J'ai un petit problème. Je dois réaliser un prog qui demande à l'user 4 nb hexa (5C6F) par exemple. Il doit inscrire cela dans DX, donc 5C dans DH et 6F dans DL. 2 problèmes se posent : a) la variable que j'utilise pour stocker mon premier nombre est var1, le deuxième est var2. Cependant, il me dit que mes variables ne sont pas déclarées, pourtant c'est ce que je fais au debut du programme  b) je fais "mov dh,var1" pour mettre le contenu de la var1 dans DH, met je n'y met que mon premier digit entré, j'aimerai également y mettre le deuxième  Mon programme est le suivant : ---------------------------------------------------------------- .MODEL small .STACK .DATA acMsg1 db "Entrer nb hexadecimal a 4 digits : $" acExpression DB 7,?,4 DUP(" ") var1 DB ? var2 DB ? .CODE mov ax,@DATA mov ds,ax ; lecture des digits entrés lea dx,acExpression mov ah,0Ah int 21h ;met les deux premiers digits hexa entres dans DH mov si,2 ; déplace le pointeur sur la case mémoire 2 mov var1,[si] ; prend le contenu de la case pointée par le pointeur et met dans var1 mov si,3 ; déplace le pointeur sur la case mémoire 3 mov var2,[si] ; prend le contenu de la case pointée par le pointeur et met dans var2 mov dh,var1 ; prend le contenu de la variable var1 et l'inscrit dans dh ----------------------------------------------------------------- Merci d'avance ! O.v.E.r.F.l.O.w.
|
|
lundi 22 décembre 2003 à 10:26:43 |
Re : déclarations des variables en ASM

hitchhikr
|
Remplace: acExpression DB 7,?,4 DUP(" ") var1 DB ? var2 DB ?
|
Par: ; (5 pour le retour chariot) acExpression db 5,0 acTampon db 5 dup (" ") var1 db 0 var2 db 0 ; Cette table permet de convertir rapidement ; une valeur ASCII hexdécimale en binaire tabhex db 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,0ah,0bh,0ch,0dh,0eh,0fh
|
et: mov si,2 ; déplace le pointeur sur la case mémoire 2 mov var1,[si] ; prend le contenu de la case pointée par le pointeur et met dans var1 mov si,3 ; déplace le pointeur sur la case mémoire 3 mov var2,[si] ; prend le contenu de la case pointée par le pointeur et met dans var2 mov dh,var1 ;
|
par: ; Note: à toi de verifier que l'utilisateur a bien entré des caractères ; valides (de 0 à 9 et de A à F). ; Le principe est assez simple, on doit convertir les données entrées ; par l'utilisateur de l'ascii vers le binaire avant de pouvoir les enregistrer ; dans des variables. lea di,tabhex ; Table de conversion ASCII->Binaire lea si,acTampon xor bx,bx ; On efface bx pour eviter les mauvaises surprises mov bl,[si] sub bl,"0" ; Retranche 030h ("0") pour obtenir un indice dans la table ; Et utilise la table pour obtenir la bonne valeur en binaire ; car "A" n'est pas égal à 0Ah après avoir soustrait "0" mov dh,[di+bx] shl dh,4 ; Décale le chiffre obtenu: 0X -> X0 inc si ; Deuxième chiffre entré mov bl,[si] sub bl,"0" or dh,[di+bx] ; Ajoute 0X mov var1,dh ; Premier nombre convertit
inc si ; On passe au deuxième nombre (Troisième chiffre) mov bl,[si] sub bl,"0" mov dl,[di+bx] shl dl,4 inc si mov bl,[si] sub bl,"0" or dl,[di+bx] mov var2,dl
; Ici , var1/var2 sont déjà dans dh/dl ;mov dh,var1 ;mov dl,var2
|
------- Note: La mode d'adressage "mémoire vers mémoire" n'existe pas avec l'instruction mov (mov var1,[si] / mov var2,[si] est impossible). Note bien que je n'ai pas testé ce code mais je pense qu'il devrait fonctionner :) Le plus important à savoir est qu'il faut convertir les données de l'ascii vers le binaire. Voila, bon courage. f.
|
|
lundi 5 janvier 2004 à 02:34:54 |
Re : déclarations des variables en ASM

CoreBreaker
|
Remplace juste: Qui est une instruction qui n'existe pas Par: Car tu dois obligatoirement passer par un registre Core Breaker 
|
|
Cette discussion est classée dans : met, mov, var1, var2, dh
Répondre à ce message
Sujets en rapport avec ce message
erreur compilation [ par greg4 ]
je voudrai compiler--------------------------------------.model tiny.dataHelloMessage db 13,10,'Hello World !',13,10,'$'.codeorg 100hstart: mov ax,@d
c/c++ et 19h [ par Xs ]
salut !je travaille sous VC++ et j'aimerais utiliser une interuption processeur : 19hmon code actuel marche mais au lieu d'eteindre le PC, il le fait
problem dans le segment .data (NASM) [ par bouba ]
J'ai commencé aujourd'hui la programmation en AssembleurMon premier programme est classique, le "Hello world!".J'utilise NASM sous Linux (Red Hat 7.3,
Problème d'adresse effective [ par Ihlianov ]
Hi,J'ai un problème avec NASM, qui me rend cinglé.Je code un .Com (16 bits) et il me revoit une erreur sur l'instruction suivante : mov ax, [d
probleme avec l interruption affichage de chaine [ par M0NTOYA ]
bon voila mon probleme ,qd j utilse cette procedure(presentation) pour afficher une chaine de caractere presentation PROC PUSHA MOV AH,09h INT 21h POP
probleme avec l interruption affichage de chaine [ par M0NTOYA ]
bon voila mon probleme ,qd j utilse cette procedure(presentation) pour afficher une chaine de caractere presentation PROC PUSHA MOV AH,09h INT 21h POP
Fonction DLL avec arguments [ par Arnotic ]
Bonjour, J'ai une DLL avec une fonction qui prend 2 arguments (en C (char*, int). Lorsque je la charge j'ai aucun problème mais lors de l'appel à
Simple addition [ par nostra ]
Big totoJe n'arrive pas à afficher les valeurs A (=3) et B(=2) ainsi que le résultat de l'addition. Merci de trouver le ou les erreurs commises.;-----
Addition pourtant simple [ par nostra ]
Big totoJe n'arrive pas à afficher le résultat de l'addition malgré les remarques de Nemesis. Merci de trouver le ou les erreurs commises. ;----------
Mov mem immediat, immediat [ par Erkson ]
Bonjour à tous.J'utilise un Pentium II PC, Windows ME, et un debuggeur qui a un assembleur intégré. Lorsque je veux modifier le programme que je debug
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|