TangiX
Messages postés59Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention 2 juin 2004 4 févr. 2004 à 17:32
Il existe deux solutions selon l'application
soit tu utilise l'instruction 'ret' si tu n'as pas touché a ta pile, c une solution simple pour les petit programme (ex:demo 4 kilo)
la deuxième solution plus utilisé consiste à utilisé une intéruption du dos fonction 4Ch de l'int21h qui demande en entrée un code d'erreur sur 8 bits (0 si ya pas de probleme sino code d'erreur definit par toi-meme)
gene rale ment on code ainsi :
Mov AX,4C00h
Int 21h
ou comme ceci :
Mov AH, 4Ch
Mov AL, CodeErreur
Int 21h
ps : il existe d'autre solution mais elle sont deconseillé.
pps : la première solution est a utilisé avec precaution et quand on ne peut pas faire autrement.
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 6 févr. 2004 à 18:48
tu peux aussi finir par int 20h
( ancienne interruption dos pour terminer programme )
par contre: pas de retour de valeur
logiquement, si ta pile est clean, tu peux aussi finir par un ret
pourquoi:
quand ton programme .com commence
sp ( stack pointer ) = 0000
apres le ret, l'instruction executée est int 20h
ax = 4c00h
int 21h
ca te permet de recuperer une valeur de retour dans al.
dans un batch (.bat), cette valeur est utilisable avec ERRORLEVEL