Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    153

    Problema maggiore [assembly]

    Buongiorno a tutti avrei un problemaa con un programma assembly,
    dpvrei trovare il maggiore tra due numeri inseriti da tastiera ma mi visualizza sempre il primo valore inserito

    Posto il codice:
    Dati Segment ;inizio del segmento Dati, in cui sono dichiarate le variabili che verranno utilizzate
    msgacq DB "INSERISCI IL 1 CARATTERE$" ;Dichiarazione della prima stringa che verrà stampata a video
    msgacq2 DB "INSERISCI IL 2 CARATTERE$"
    msgvis DB "Il maggiore e': $" ;Dichiarazione della seconda stringa che verrà stampata a video
    car1 DB (?) ;dichiarazzione della variabile di appoggio
    car2 DB (?)
    Dati Ends ;fine del segmento Dati

    Pila Segment Stack ;inizio del segmento di stack
    DW 100 Dup (?) ;riserviamo 100 allocazioni in memoria che serviranno per l'esecuzione del programma
    Top LABEL WORD
    Pila Ends ;fine del segmento di stack

    Codice Segment ;inizio del segmento di codice
    ASSUME CS: Codice, SS: Pila, DS: Dati, ES: Dati
    Inizio:
    MOV AX, Pila
    MOV SS, AX
    LEA AX, Top
    MOV SP, AX
    MOV AX, Dati
    MOV DS, AX
    MOV ES, AX

    ;inizio del programma
    LEA DX, msgacq ;--------------------------------------------------------------------------------------------------
    MOV AH, 09h ;---ISTRUZIONI PER LA STAMPA A VIDEO DELLA PRIMA STRINGA-------
    INT 21h ;--------------------------------------------------------------------------------------------------

    MOV DL, 10d ;Insieme di sei istuzioni per l'andata a capo
    MOV AH, 02h
    INT 21h
    MOV DL, 13d ;ISTRUZIONI PER L'ANDATA A INIZIO RIGA
    MOV AH, 02h
    INT 21h

    MOV AH, 01h ;Acqisizione dato con eco
    INT 21h
    MOV car1, AL ;Spostamento del carattere memorizzato in AL dentro la variabile "car"

    MOV DL, 10d ;Insieme di sei istuzioni per l'andata a capo
    MOV AH, 02h
    INT 21h
    MOV DL, 13d ;ISTRUZIONI PER L'ANDATA A INIZIO RIGA
    MOV AH, 02h
    INT 21h

    LEA DX, msgacq2 ;--------------------------------------------------------------------------------------------------
    MOV AH, 09h ;---ISTRUZIONI PER LA STAMPA A VIDEO DELLA SECONDA STRINGA-------
    INT 21h ;--------------------------------------------------------------------------------------------------

    MOV DL, 10d ;Insieme di sei istuzioni per l'andata a capo
    MOV AH, 02h
    INT 21h
    MOV DL, 13d ;ISTRUZIONI PER L'ANDATA A INIZIO RIGA
    MOV AH, 02h
    INT 21h

    MOV AH, 01h ;Acqisizione dato con eco
    INT 21h
    mov al, ax

    CMP car1, car2
    JG VIS

    VIS:
    MOV DL, 10d
    MOV AH, 02h ;ANDATA ALLA RIGA SUCCESSIVA
    INT 21h
    MOV DL, 13d
    MOV AH, 02h ;ISTRUZIONI PER L'ANDATA A INIZIO RIGA
    INT 21h

    LEA DX, msgvis
    MOV AH, 09h
    INT 21h

    MOV DL, 10d
    MOV AH, 02h ;ANDATA ALLA RIGA SUCCESSIVA
    INT 21h
    MOV DL, 13d
    MOV AH, 02h ;ISTRUZIONI PER L'ANDATA A INIZIO RIGA
    INT 21h

    MOV DL, car1
    MOV AH, 02h ;STAMPA A VIDEO DEL CARATTERE INSERITO
    int 21h

    MOV DL, 10d
    MOV AH, 02h ;ANDATA ALLA RIGA SUCCESSIVA
    INT 21h
    MOV DL, 13d
    MOV AH, 02h ;ISTRUZIONI PER L'ANDATA A INIZIO RIGA
    INT 21h

    MOV DL, car2
    MOV AH, 02h ;STAMPA A VIDEO DEL CARATTERE INSERITO
    int 21h

    ;ritorno al sistema operativo
    MOV AL, 00h
    MOV AH, 4Ch
    INT 21h
    Codice Ends
    END Inizio
    Niente è impossibile...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scusa, ma ci spieghi come hai fatto il confronto ? Commenta le istruzioni che hai usato e la logica che hai seguito ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    153
    Il codice è commentato....
    Niente è impossibile...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da nickt
    Il codice è commentato....
    Anche questo

    CMP car1, car2
    JG VIS

    ????

    Comunque, se non vuoi un aiuto, dillo pure ... sarai accontentato.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Non vorrei sbagliarmi ma come già stavano facendoti notare l'errore penso sia propri li in quanto salti ad un etichetta a cui arriveresti comunque stampando solo la scritta "Il maggiore è" e i due numeri inseriti.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    153
    Boh Il prof ha spiegato così... non so cosa dirvi...
    Niente è impossibile...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.