begin process at 2010 02 09 18:34:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Forum general 80xxx

 > 

Simple addition


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Simple addition

vendredi 14 mars 2003 à 18:00:30 | Simple addition

nostra

Big toto

Je 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.


;-----------------------------------------------;
; Pour Compiler: tasm32 tlink ;
;-----------------------------------------------;

; SEGMENT DE DATA-------------------------------
data16 segment public ; déclaration du segment de data
titre db 10,10
db " **********************************************",10,13
db " * *",10,13
db " * OPERATION SIMPLE *",10,13
db " * ADDITION DE 2 NOMBRES *",10,13
db " * *",10,13
db " **********************************************",10,10,13,'$'

message_A db 10,13," Soit A = ",'$'; une variable
message_B db 10,13," Soit B = ",'$'; une variable
message_AB db 10,10,13," A + B = ",'$'; le résultat de l'addition

Valeur_A db 3
Valeur_B db 2

data16 ends

; SEGMENT DE CODE----------------------------
code16 segment public ; déclaration du segment de code
assume cs:code16, ds:data16, ss:stack16

start16:
; Adapte le segment de data: ds
mov ax, data16 ; ax = data16
mov ds, ax ; ds = ax

; Saisie de l'identifiant et du passe
debut:

mov dx, offset titre ; offset de titre
mov ah, 09h ; Afficher un texte à l'écran
int 21h ; Interruption DOS

; Affiche la valeur de A
mov dx, offset message_A
int 21h ; Interruption DOS
mov dx,offset Valeur_A
int 21h ; Interruption DOS

; Affiche la valeur de B
mov dx, offset message_B
int 21h ; Interruption DOS
mov dx, offset Valeur_B
int 21h ; Interruption DOS

; Calcule A + B
add dx, offset valeur_A ; Ajoute dans Valeur_B la Valeur_A
push dx ; Empile (Valeur A+B)

; Affiche le résultat de A + B
mov dx, offset message_AB
int 21h ; Interruption DOS
pop dx ; Dépile (Valeur A+B)
int 21h ; Interruption DOS


; Quitte le programme
mov al, 00h ; pas de problèmes
mov ah, 4ch ; quitter le programme
int 21h ; Interruption DOS

code16 ends ; fin de text

; SEGMENT DE STACK----------------------------
stack16 segment stack
db 200h dup (?)
stack16 ends

end start16 ; fin du programme
; débute à 'start16'
vendredi 14 mars 2003 à 18:07:16 | Re : Simple addition

Nemesis

Pour afficher 3 ou 2, il faut écrire:

Valeur_A db "3$"
Valeur_B db "2$"

si tu écris:

Valeur_A db 3

C'est le code ASCII 3 (ou 2) qui sera affiché, et non pas le caractère "3" qui correspond au caractère ASCII 51


En espérant t'avoir aidé...

Nemesis


-------------------------------
Réponse au message :
-------------------------------

> Big toto
>
> Je 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.
>
>
> ;-----------------------------------------------;
> ; Pour Compiler: tasm32 tlink ;
> ;-----------------------------------------------;
>
> ; SEGMENT DE DATA-------------------------------
> data16 segment public ; déclaration du segment de data
> titre db 10,10
> db " **********************************************",10,13
> db " * *",10,13
> db " * OPERATION SIMPLE *",10,13
> db " * ADDITION DE 2 NOMBRES *",10,13
> db " * *",10,13
> db " **********************************************",10,10,13,'$'
>
> message_A db 10,13," Soit A = ",'$'; une variable
> message_B db 10,13," Soit B = ",'$'; une variable
> message_AB db 10,10,13," A + B = ",'$'; le résultat de l'addition
>
> Valeur_A db 3
> Valeur_B db 2
>
> data16 ends
>
> ; SEGMENT DE CODE----------------------------
> code16 segment public ; déclaration du segment de code
> assume cs:code16, ds:data16, ss:stack16
>
> start16:
> ; Adapte le segment de data: ds
> mov ax, data16 ; ax = data16
> mov ds, ax ; ds = ax
>
> ; Saisie de l'identifiant et du passe
> debut:
>
> mov dx, offset titre ; offset de titre
> mov ah, 09h ; Afficher un texte à l'écran
> int 21h ; Interruption DOS
>
> ; Affiche la valeur de A
> mov dx, offset message_A
> int 21h ; Interruption DOS
> mov dx,offset Valeur_A
> int 21h ; Interruption DOS
>
> ; Affiche la valeur de B
> mov dx, offset message_B
> int 21h ; Interruption DOS
> mov dx, offset Valeur_B
> int 21h ; Interruption DOS
>
> ; Calcule A + B
> add dx, offset valeur_A ; Ajoute dans Valeur_B la Valeur_A
> push dx ; Empile (Valeur A+B)
>
> ; Affiche le résultat de A + B
> mov dx, offset message_AB
> int 21h ; Interruption DOS
> pop dx ; Dépile (Valeur A+B)
> int 21h ; Interruption DOS
>
>
> ; Quitte le programme
> mov al, 00h ; pas de problèmes
> mov ah, 4ch ; quitter le programme
> int 21h ; Interruption DOS
>
> code16 ends ; fin de text
>
> ; SEGMENT DE STACK----------------------------
> stack16 segment stack
> db 200h dup (?)
> stack16 ends
>
> end start16 ; fin du programme
> ; débute à 'start16'
vendredi 14 mars 2003 à 18:22:39 | Re : Simple addition

nostra


Big toto

merci de la réponse.
mais une autre erreur subsiste puisque le résultat de l'addition n'apparaît pas. merci de trouver la réponse.

-------------------------------
Réponse au message :
-------------------------------

> Pour afficher 3 ou 2, il faut écrire:
>
> Valeur_A db "3$"
> Valeur_B db "2$"
>
> si tu écris:
>
> Valeur_A db 3
>
> C'est le code ASCII 3 (ou 2) qui sera affiché, et non pas le caractère "3" qui correspond au caractère ASCII 51
>
>
> En espérant t'avoir aidé...
>
> Nemesis
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Big toto
> >
> > Je 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.
> >
> >
> > ;-----------------------------------------------;
> > ; Pour Compiler: tasm32 tlink ;
> > ;-----------------------------------------------;
> >
> > ; SEGMENT DE DATA-------------------------------
> > data16 segment public ; déclaration du segment de data
> > titre db 10,10
> > db " **********************************************",10,13
> > db " * *",10,13
> > db " * OPERATION SIMPLE *",10,13
> > db " * ADDITION DE 2 NOMBRES *",10,13
> > db " * *",10,13
> > db " **********************************************",10,10,13,'$'
> >
> > message_A db 10,13," Soit A = ",'$'; une variable
> > message_B db 10,13," Soit B = ",'$'; une variable
> > message_AB db 10,10,13," A + B = ",'$'; le résultat de l'addition
> >
> > Valeur_A db 3
> > Valeur_B db 2
> >
> > data16 ends
> >
> > ; SEGMENT DE CODE----------------------------
> > code16 segment public ; déclaration du segment de code
> > assume cs:code16, ds:data16, ss:stack16
> >
> > start16:
> > ; Adapte le segment de data: ds
> > mov ax, data16 ; ax = data16
> > mov ds, ax ; ds = ax
> >
> > ; Saisie de l'identifiant et du passe
> > debut:
> >
> > mov dx, offset titre ; offset de titre
> > mov ah, 09h ; Afficher un texte à l'écran
> > int 21h ; Interruption DOS
> >
> > ; Affiche la valeur de A
> > mov dx, offset message_A
> > int 21h ; Interruption DOS
> > mov dx,offset Valeur_A
> > int 21h ; Interruption DOS
> >
> > ; Affiche la valeur de B
> > mov dx, offset message_B
> > int 21h ; Interruption DOS
> > mov dx, offset Valeur_B
> > int 21h ; Interruption DOS
> >
> > ; Calcule A + B
> > add dx, offset valeur_A ; Ajoute dans Valeur_B la Valeur_A
> > push dx ; Empile (Valeur A+B)
> >
> > ; Affiche le résultat de A + B
> > mov dx, offset message_AB
> > int 21h ; Interruption DOS
> > pop dx ; Dépile (Valeur A+B)
> > int 21h ; Interruption DOS
> >
> >
> > ; Quitte le programme
> > mov al, 00h ; pas de problèmes
> > mov ah, 4ch ; quitter le programme
> > int 21h ; Interruption DOS
> >
> > code16 ends ; fin de text
> >
> > ; SEGMENT DE STACK----------------------------
> > stack16 segment stack
> > db 200h dup (?)
> > stack16 ends
> >
> > end start16 ; fin du programme
> > ; débute à 'start16'
>


Cette discussion est classée dans : valeur, db, mov, segment, dx


Répondre à ce message

Sujets en rapport avec ce message

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. ;---------- Multiplication de deux nombres compris entre 0 et 99 en assembleur [ par petitspirou ] salut, j'ai un programme a faire mais je suis nul en assembleur, voici ce que j'ai fais mais ca ne fonctionne pas.Quelqun peut'il me le corriger et me Graphique [ par RM50Man ] Bonjour a tous!!!!Je veux tracer une ligne mais ca ne marche pas, je passe les parametre par la pile,et ensuite ds la fonction principale, je remplis Mini OS !! debut [ par Hardouz ] salut a tous ! je debut en ASM je vx bosser un px en ASM je connais l'architechture ect !!! j'ai fais un pti programme mais il ya un probléme 1/ lors assembleur/ patronyme [ par maxverypainful ] Bonjour, je suis nouveau en tant qu'étudiant en informatique de gestion et j'ai une question concernant un code que nous devons créer.Il a pour but de probleme d'affichage d'une soustraction [ par calimerros ] [u]Bonjour à tous et à toutes.[/u] Voici un programme que je réalise et je bloque au niveau de l'affichage d'une soustraction (SUB). Pour moi mon pr Modifer le vecteur d'interruptions [ par vecchio56 ] Bonjour J'essaie de refaire la source http://www.cppfrance.com/code.aspx?ID=33558 en assembleur (ca consiste à modifier la routine de l'interruption 0 Entrée d'une chaine de cractères [ par w4kfu ] J'é message d'erreur [ par kaka83185 ] slt a tous, je suis débutant en langage assembleur,j'essaye de faire mon premier programme en MASM, et c'est en fait l'addition d'un nombre avec un au interruption [ par aboulkhir ] salut j essaye de gerer le clavier en interruption en asselmbleur voila mon programme je travaille sous debug en invite de commande de windowsclimo


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales