begin process at 2010 02 09 17:43:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Forum general 80xxx

 > 

Addition pourtant simple


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

Addition pourtant simple

vendredi 14 mars 2003 à 18:41:25 | Addition pourtant simple

nostra

Big toto


Je n'arrive pas à afficher le résultat de l'addition malgré les remarques de Nemesis. 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'



samedi 15 mars 2003 à 09:02:40 | Re : Addition pourtant simple

littlefl

Oulala, ça fait bien longtemps que j'ai aps touché l'ASM 16 bits lol.

Bon alors déjà, ton addition est fausse, tu additionnes l'adresse de valeur_A avec celle de Valeur_B.

Après, quoiqu'il en soit, ton addition ne peut pas marcher, parce-que tout simplement tes variables sont de type string et non word ou byte !

En ASM, ce n'est pas comme en C, la routine d'affichage n'est pas aussi flexible, elle n'accepte que les chaînes.

La solution : Convertir ta chaîne en word puis additionner les deux. Il n'y a pas de routine de convertion en ASM, faut la faire toi même mais regarde sur ce site, il doit y en avoir.

Bon voilà, je crois que c'est tout, écrit mov ax, 4c00h au lieu de mov al, 00h et mov ah, 4ch


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


Répondre à ce message

Sujets en rapport avec ce message

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

Comparez les prix

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,640 sec (4)

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