Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Scrivere un programma assembly che:
- ;- carichi da tastiera un vettore di 9 elementi, ogni elemento e' un digit
- ;- Inserisca da tastiera una cifra
- ;- conti le occorrenze della cifra nel vettore
- ;- stampi a video il numero di occorrenze, se la cifra è presente nel vettore
- ;- stampi a video il messaggio NON TROVATO, se la cifra non è presente
- ;nel vettore
- data segment
- ; add your data here!
- array db 9 dup(?)
- ricerca db ?
- messaggio1 db "Inserisci 9 cifre non separate da spazi: ", 13, 10, '$'
- messaggio2 db 13, 10, "Inserisci una cifra da cercare all'interno delle cifre inserite: ", 13, 10, '$'
- risultato1 db 13, 10,"la cifra e' stata trovata $"
- risultato1pt2 db " volte$"
- risultato2 db 13, 10,"la cifra non e' stata trovata$"
- n_volte db '0' , '$'
- pkey db 13, 10,"premi un tasto per continuare...$"
- ends
- stack segment
- dw 128 dup(0)
- ends
- code segment
- start:
- ; set segment registers:
- mov ax, data
- mov ds, ax
- mov es, ax
- ; add your code here
- lea dx, messaggio1
- mov ah, 9
- int 21h
- mov cx, 9
- mov si, 0
- inserimento: mov ah, 1
- int 21h
- mov array[si], al
- sub array[si], 30h
- inc si
- loop inserimento
- lea dx, messaggio2
- mov ah, 9
- int 21h
- mov ah, 1
- int 21h
- mov ricerca, al
- sub ricerca, 30h
- mov cx, 9
- mov si, 0
- confronto: cmp si, 9
- je uscitaciclo
- mov al, array[si]
- sub cx, 1
- inc si
- cmp al, ricerca
- jne confronto
- inc n_volte
- cmp cx, 0
- jne confronto
- uscitaciclo: mov al, '0'
- cmp al, n_volte[0]
- je ris2
- lea dx, risultato1
- mov ah, 9
- int 21h
- lea dx, n_volte
- mov ah, 9
- int 21h
- lea dx, risultato1pt2
- mov ah, 9
- int 21h
- jmp fine
- ris2: lea dx, risultato2
- mov ah, 9
- int 21h
- fine: lea dx, pkey
- mov ah, 9
- int 21h ; output string at ds:dx
- ; wait for any key....
- mov ah, 1
- int 21h
- mov ax, 4c00h ; exit to operating system.
- int 21h
- ends
- end start ; set entry point and stop the assembler.
Add Comment
Please, Sign In to add comment