cs_nostra
Messages postés3Date d'inscriptiondimanche 23 février 2003StatutMembreDernière intervention14 mars 2003
-
14 mars 2003 à 18:41
littlefl
Messages postés21Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 2 juillet 2003
-
15 mars 2003 à 09:02
:-p 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
littlefl
Messages postés21Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 2 juillet 2003 15 mars 2003 à 09:02
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