2016-03-05 1 views
2

Je veux juste demander comment terminer ou fermer le programme après qu'il rencontre une condition. im près de terminer cette étude de cas .. merci pour répondre:]emu8086 - Comment terminer un programme en fonction d'une condition

comme:

cmp byte ptr [sel3_1+2], 'a' 
je stop 

stop: 
*code here* 

ou quelque chose qui code pour arrêter la condition

+0

Il y a un appel système DOS ('int 21h') qui sort de votre programme. Exécutez-le quand vous voulez que cela se produise. Ce n'est pas différent d'exécuter un autre appel système conditionnellement, sauf qu'il ne retourne jamais. –

Répondre

2

Appel 21H avec un service 4CH - sortie avec code retour, placez le code de retour dans AL.

Ainsi,

MOV AH, 4CH 
MOV AL, 01 ;your return code. 
INT 21H 

Ou pour sortir sans code de retour, utilisez le service 0 ...

MOV AH, 0 
INT 21H 
+0

Notez que vous pouvez sacrifier la lisibilité humaine pour une taille de code plus petite en utilisant 'mov ax, 4C01H' pour charger les deux moitiés du registre avec une seule instruction. Aussi, je suggère d'utiliser des commentaires valides (';') pour expliquer des choses dans votre exemple de code. –

+0

Mis à jour, merci. – Tony68000

+0

En fait, DOS va sortir avec un code _return = 0_ quand vous utilisez 'mov ah, 0' int 21h'. De plus, il existe un moyen encore plus court de quitter un programme en écrivant simplement 'int 20h'. – Fifoernik