• T4CH
  • NEWS
  • VIDEO
Forum > Software

Programma in Assembler

Discussione inserita in 'Software' da Faith, 4 Novembre 2008.

  1. Faith techNewbie

    Programma in Assembler

    Allora io ho un bel problemino. Ho cercato di creare un programma in Assembler (utilizzando dopo il programma MASM 6.1.1) ma non riesco ad ottenere quello che desidero. Il testo è il seguente:

    Inseriti da tastiera 2 carattere vedere se sono UGUALI o DIVERSI e dire quale dei 2 caratteri inseriti è MAGGIORE o MINORE.

    Questo è il programma che ho scritto:



    dosseg

    .model small

    .stack 100h

    .data

    mex0 db "INSERISCI PRIMO CARATTERE: $"

    mex1 db "INSERISCI SECONDO CARATTERE: $"

    mex2 db " I DUE VALORI SONO UGUALI $"

    mex3 db " I DUE VALORI SONO DIVERSI $"

    mex4 db " IL PRIMO VALORE E' MAGGIORE $"

    mex5 db " IL PRIMO VALORE E' MINORE $"

    mex6 db " IL SECONDO VALORE E' MAGGIORE $"

    mex7 db " IL SECONDO VALORE E' MINORE $"

    carat db ?

    .code

    mov ax,@data

    mov ds,ax

    lea dx,mex0 ; inserisco il primo carattere

    mov ah,9

    int 21h

    mov ah,1

    int 21h

    mov carat,al ; salva carattere

    lea dx,mex1 ; inserisco il secondo carattere

    mov ah,9

    int 21h

    mov ah,1

    int 21h

    cmp carat,al

    je uguali

    jne diversi

    uguali:

    lea dx,mex2

    mov ah,9

    int 21h

    jmp fine

    diversi:

    lea dx,mex3

    mov ah,9

    int 21h

    cmp carat,al

    ja primomag

    jb primomin

    primomag:

    mov ah,2

    int 21h

    lea dx,mex4

    mov ah,9

    int 21h

    jmp secondomin

    primomin:

    mov ah,2

    int 21h

    lea dx,mex5

    mov ah,9

    int 21h

    jmp secondomag

    secondomag:

    mov ah,2

    int 21h

    lea dx,mex6

    mov ah,9

    int 21h

    jmp fine

    secondomin:

    mov ah,2

    int 21h

    lea dx,mex7

    mov ah,9

    int 21h

    jmp fine

    cmp carat,al

    ja primomin2

    jb primomag2

    primomag2:

    mov ah,2

    int 21h

    lea dx,mex5

    mov ah,9

    int 21h

    jmp secondomag2

    primomin2:

    mov ah,2

    int 21h

    lea dx,mex4

    mov ah,9

    int 21h

    jmp secondomin2

    secondomag2:

    mov ah,2

    int 21h

    lea dx,mex7

    mov ah,9

    int 21h

    jmp fine

    secondomin2:

    mov ah,2

    int 21h

    lea dx,mex6

    mov ah,9

    int 21h

    jmp fine

    fine:

    mov ah,4ch

    int 21h

    end





    Qualcuno mi saprebbe dire in cosa sbaglio? Qualsiasi carattere inserisco mi spunta sempre che il primo è maggiore e il secondo è minore.
    Faith, 4 Novembre 2008
    #1
Password dimenticata?
SU TERMINI DI SERVIZIO CONTATTACI