vector interseccion
introduce dos vectores y obtiene el vector interseccion
;Autor luis manuel
;URL
;ledesma carrillo luis manuel
;informatica basica
;programa para encontrar el vector interseccion de 2 vectores
.model small
.stack
.data
v DB 20 dup(?)
v1 DB 20 dup(?)
n DB ?
m DB ' "programa para determinar el vector interseccion de 2 vectores" $'
m0 DB 13,10,'introduce el tamaño de los vectores: $'
m1 DB 13,10,'introduce el vector 1: $'
m2 DB 13,10,'introduce el vector 2: $'
m3 DB 13,10,'el vector interseccion es: $'
m4 DB 13,10,' para realizar otra operacion marque "s" para salir cualquier tecla: ','$'
n1 dw ?
m5 DB 13,10,'la tecla precionada no es numero $'
.code
main:
;limpiar pantalla
mov ah,00h
mov al,03h
int 10h
;mensaje del programa
mov ax,@data
mov ds,ax
lea dx,m
mov ah,09
int 21h
;mensaje para introducir tamaño de los vectores
lea dx,m0
mov ah,09
int 21h
;introducir tamaño de los vectores
mov ah,01h
int 21h
;verificar si el numero se encuentra en el rango 0 a 9
cmp al,030h
js s
cmp al,03ah
jns s
;ajustando el valor de al para almacenarlo en n
sub al,30h
mov n,al
;almacenando el valor de al n1
mov n1,ax
;limpiando parte alta del registro n1
and n1,0fh
;mensaje 1 para introducir el vector 1
lea dx,m1
mov ah,09
int 21h
mov dl,'['
mov ah,02h
int 21h
;********
;ciclo para introducir los vectores
mov cl,n
mov si,0
r:
mov ah,01h
int 21h
mov v[si],al
inc si
loop r
;***********
mov dl,']'
mov ah,02h
int 21h
;mensaje 2 para introducir el vector 2
lea dx,m2
mov ah,09
int 21h
mov dl,'['
mov ah,02h
int 21h
;****************
;2do ciclo para introducir los vectores
mov cl,n
mov si,0
rr: ;20
mov ah,01h
int 21h
mov v1[si],al
inc si
loop rr
;**************
mov dl,']'
mov ah,02h
int 21h
jmp segir
; doble salto de regreso
;*************
ma: ;***
jmp main ;***
;*************
;doble salto de ida
;***********
s: ;**
jmp s1 ;**
;***********
segir:
;mensaje 3 imprimir el vector interseccion
lea dx,m3
mov ah,09
int 21h
mov dl,'['
mov ah,02h
int 21h
;**********************
;ciclo para comparar y obtener el vector intercepcion
mov cl,n
mov si,0
rrr:
mov al,v[si]
mov di,0
rrrr:
mov bl,v1[di]
inc di
cmp al,bl
jz inter
jmp reg
reg:
cmp di,n1
jnz rrrr
jmp sa
inter:
mov dl,al
mov ah,02h
int 21h
jmp reg
sa:
inc si
loop rrr
;************
mov dl,']'
mov ah,02h
int 21h
jmp salir
s1:
;mensaje para advertir sobre la tecla presionada no es numero
lea dx,m5
mov ah,09h
int 21h
salir:
;mensaje para realizar otra operacion
lea dx,m4
mov ah,09h
int 21h
;ingresar las desicion
mov ah,01h
int 21h
cmp al,'s'
jz ma
mov ah,4ch
int 21h
end main