EL SIGUIENTE CODIGO SE SUPONE QUE BUSCA CONCATENA Y IGUALA
EL PROBLEMA ES QUE NO CONCATENE BIEN ESPERO QUE ALGUIEN ME PUEDE AYUDAR.
B10PRMP MACRO MSG
MOV AH,09H
LEA DX,MSG
INT 21H
ENDM
STACK SEGMENT STACK
DW 64 DUP (?)
STACK ENDS
DATA SEGMENT PARA 'DATA'
CAD1 LABEL BYTE ;LISTA DE PARAMETROS NOMBRE
MAXCAD1 DB 20 ;LONGITUD MAXIMA DE NOMBRE
NAMECA1 DB ? ;NO. DE CARACTERES INTRODUCIDOS
NAMCAD1 DB 21 DUP(' ') ;NOMBRE INTRODUCIDO
PROMC1 DB 'PRIMER CADENA? ','$'
CAD2 LABEL BYTE ;LISTA DE PARAMETROS NOMBRE
MAXCAD2 DB 20 ;LONGITUD MAXIMA DE NOMBRE
NAMECA2 DB ? ;NO. DE CARACTERES INTRODUCIDOS
NAMCAD2 DB 21 DUP(' ') ;NOMBRE INTRODUCIDO
PROMC2 DB 'SEGUNDA CADENA? ','$'
CAR DB 0
CARM DB 'INTRODUSCA EL CARACTER ','$'
IGUAL DB 'LAS CADENAS SON IGUALES','$'
DIFER DB 'LAS CADENAS SON DIFERENTES','$'
ENCON DB 'SI SE ENCONTRO','$'
NNCON DB 'NO SE ENCONTRO','$'
NAMCAD3 DB 41 DUP (' ') ;CONCATENAR
DATA ENDS
CODE SEGMENT PARA 'CODE'
ASSUME CS:CODE,DS:DATA,SS:STACK
INICIO:
PRINCIPAL PROC NEAR
MOV AX,DATA
MOV DS,AX
MOV ES,AX
CALL Q10CLR ;LIMPIAR PANTALLA
A20LOOP:
CALL Q10CLR
MOV DH,00 ;FIJAR CURSOR EN 00,00
MOV DL,00
CALL Q20CURS
B10PRMP PROMC1 ;EXIBIR INDICACION
CALL D10INPT ;PROPORCIONA ENTRADA DEL NOMBRE
MOV DH,01 ;FIJAR CURSOR 01,00
MOV DL,00
CALL Q20CURS
B10PRMP PROMC2
CALL D10INPT1 ;PROPORCIONA LA ENTRADA DEL NOMBRE
MOV DH,02 ;FIJAR CURSOR 02,00
MOV DL,00
CALL Q20CURS
B10PRMP CARM
MOV AH,1 ;INVESTIGAR ESAT INTERRUPCION
INT 21H
MOV CAR,AL
CALL COMPARA
CALL CONCAT
CALL BUSCA
MOV AH,1
INT 21H
CMP AL,27
JE A30
JMP A20LOOP
A30:
MOV AH,4CH
INT 21H
PRINCIPAL ENDP
;ACEPTA ENTRADA NOMBRE
D10INPT PROC NEAR
MOV AH,0AH ;entrada del teclado mediate el bufer
LEA DX,CAD1 ;carga la entrada de cadena
INT 21H
RET
D10INPT ENDP
COMPARA PROC NEAR
MOV DH,03
MOV DL,00
CALL Q20CURS
CLD
MOV CX,20
LEA DI,NAMCAD2
LEA SI,NAMCAD1
REPE CMPSB
JNE G20
B10PRMP IGUAL
JMP G21
G20:
B10PRMP DIFER
G21:
RET
COMPARA ENDP
CONCAT PROC NEAR
MOV DH,04
MOV DL,00
CALL Q20CURS
CLD
MOV CH,00
MOV CL,NAMECA1
LEA DI,NAMCAD3
LEA SI,NAMCAD2
REP MOVSB
MOV CH,00
MOV CL,NAMECA2
LEA SI,NAMCAD2
REP MOVSB
MOV BH,00 ;REMPLAZA EL CARACTER ENTER(0D)
MOV BL,NAMECA1 ;POR EL (07)
ADD BL,NAMECA2
MOV NAMCAD3[BX],07
MOV NAMCAD3[BX+1],'$' ;DELIMITADOR DE IMPRESION
B10PRMP NAMCAD3
RET
CONCAT ENDP
BUSCA PROC NEAR
MOV DH,05
MOV DL,00
CALL Q20CURS
CLD
MOV AL,CAR
MOV CH,00 ;REMPLAZA CARACTER ENTER
MOV CL,NAMECA1
ADD CL,NAMECA2
LEA DI,NAMCAD3
REPNE SCASB ;INVESTIGAR ESTO
JNE G201
B10PRMP ENCON
JMP G211
G201:
B10PRMP NNCON
G211:
RET
BUSCA ENDP
D10INPT1 PROC NEAR
MOV AH,0AH
LEA DX,CAD2 ;ENTRADA
INT 21H
RET
D10INPT1 ENDP
Q10CLR PROC NEAR
MOV AX,0600H
MOV BH,30
MOV CX,0000
MOV DX,184FH
INT 10H
RET
Q10CLR ENDP
Q20CURS PROC NEAR
MOV AH,02H ;PETICION DE FIJAR CURSOR
MOV BH,00 ;PAGINA NO.0
INT 10H
RET
Q20CURS ENDP
CODE ENDS
END INICIO ;FIN DE SEGMENTO DE CODIGO