2016-06-17 1 views
0

J'avais fait un code qui affichait le plus grand mais ensuite mon prof nous demande d'en faire un autre qui saisit 3 nombres et affiche la plus petite valeur.comment afficher la plus petite valeur dans mon code dans emu8086?

Voici le code:

org 100h 

    jmp start 

    msg1 db 10,13,"Enter first number: $" 
    msg2 db 10,13,"Enter second number: $" 
    msg3 db 10,13,"Enter third Number: $" 

    num1 db ? 
    num2 db ? 
    num3 db ? 

start: 

    lea dx, msg1 
    mov ah, 9 
    int 21h 
    mov ah, 1 
    int 21h 
    mov num1, al 
    lea dx, msg2 
    mov ah, 9 
    int 21h 
    mov ah, 1 
    int 21h 
    mov num2, al 
    lea dx, msg3 
    mov ah, 9 
    int 21h 
    mov ah, 1 
    int 21h 
    mov num3, al 

    mov bl, num1 
    cmp bl, num2 
    jng number2 

    cmp bl, num3 
    jng number3 

    mov ah, 2 
    mov dl, num1 
    int 21h 
    jmp escape 

number2: 

    mov bl, num2 
    cmp bl, num3 
    jng number3 

    mov ah, 2 
    mov dl, num2 
    jmp escape 

number3: 

    mov ah, 2 
    mov dl, num3 
    int 21h 

escape: 
    ret 

exemple de sortie:

1er pas. j'entre 3

2 non, j'entre 2

3 non, j'entre 1

et le plus grand est 3, mais la sortie sera de 13 parce que je ne sais pas comment mettre l'espace sur mon code: D ...

Pls aide !!! XD Aussi, c'est la première fois que je publie ça ... désolé pour ma mauvaise grammaire.

+0

c'est dû lundi hahhaha. danm. –

+0

Est-ce que votre enseignant sait que des étrangers au hasard font vos devoirs? – csmckelvey

+0

@takendarkk: Fifoernik n'est pas au hasard, je m'attendais à lui répondre ou Sep Roland. Si je peux deviner, ce n'est probablement pas entièrement aléatoire ;-) –

Répondre

1
mov ah, 2 
mov dl, num2 
jmp escape 

Dans cette partie de votre programme a oublié d'appeler réellement DOS avec int 21h.

je ne sais pas comment mettre l'espace sur mon code

Il suffit d'utiliser les éléments suivants partout où vous besoin d'espace entre les sorties sur la même ligne:

mov ah, 2 
mov dl, " " 
int 21h 

Ou mettre des articles sur des lignes différentes en utilisant:

mov ah, 2 
mov dl, 10 
int 21h 
mov dl, 13 
int 21h 

Une meilleure solution serait d'afficher un su un message Itableau avant la sortie du numéro:

msg4 db 10,13,"Smallest value: $" 
... 
lea dx, msg4 
mov ah, 9 
int 21h 

mon professeur nous demande de faire un autre que l'entrée 3 numéros et afficher la plus petite valeur.

changer simplement tous les jng (sauter sur pas plus) les instructions du jnl (saut sur pas moins) instruction.


Ceci est une version légèrement meilleure de votre code et en utilisant jnl:

mov bl, num1 
cmp bl, num2 
jnl number2 
cmp bl, num3 
jnl number3 
mov dl, num1 
jmp Print 
number2: 
mov bl, num2 
cmp bl, num3 
jnl number3 
mov dl, num2 
jmp Print 
number3: 
mov dl, num3 
Print: 
mov ah, 2  
int 21h 
ret 

Bonne chance lundi!

+0

aw mon dieu ty. votre mon dieu non: D –