ValeLL
23-09-2016, 11:34
Ciao a tutti sto programmando in Assembly 8086 e dovrei scrivere un programma che ricerca un valore nel vettore, però ci sarà qualche problema nel ciclo perché riesce a trovarmi solo l'ultimo valore nel vettore. Purtroppo sono alle prime armi e non capisco.
.MODEL SMALL
.STACK 100H
.DATA
VETT DB 10 DUP(1,2,3,4,5,6,7,8,9,10)
VALORE DB 10
VERO DB 'VALORE PRESENTE',13,10,'$'
FALSO DB 'VALORE NON PRESENTE',13,10,'$'
.CODE
.STARTUP
MOV AX,@DATA
MOV DS,AX
MOV CX,10
MOV SI,0
MOV AX,0
MOV BL,VALORE
CICLO:
CMP BL,VETT[SI]
JE PRES
INC SI
LOOP CICLO
JMP ERRORE
PRES:
INC SI
LOOP CICLO
MOV AH,09H
MOV DX,OFFSET VERO
INT 21H
JMP FINE
ERRORE:
MOV AH,09H
MOV DX,OFFSET FALSO
INT 21H
FINE:
NOP
MOV AH,4CH
INT 21H
END
.MODEL SMALL
.STACK 100H
.DATA
VETT DB 10 DUP(1,2,3,4,5,6,7,8,9,10)
VALORE DB 10
VERO DB 'VALORE PRESENTE',13,10,'$'
FALSO DB 'VALORE NON PRESENTE',13,10,'$'
.CODE
.STARTUP
MOV AX,@DATA
MOV DS,AX
MOV CX,10
MOV SI,0
MOV AX,0
MOV BL,VALORE
CICLO:
CMP BL,VETT[SI]
JE PRES
INC SI
LOOP CICLO
JMP ERRORE
PRES:
INC SI
LOOP CICLO
MOV AH,09H
MOV DX,OFFSET VERO
INT 21H
JMP FINE
ERRORE:
MOV AH,09H
MOV DX,OFFSET FALSO
INT 21H
FINE:
NOP
MOV AH,4CH
INT 21H
END