Red de conocimiento informático - Conocimiento sistemático - Lenguaje ensamblador, elimine los caracteres de la cadena. Marque la función de cada paso. ¿Puede ayudarme un experto en programación? ! !

Lenguaje ensamblador, elimine los caracteres de la cadena. Marque la función de cada paso. ¿Puede ayudarme un experto en programación? ! !

DATA SEGMENT el segmento de datos comienza

s1 db 0dh,0ah,'string: $' s1,s2,s3 son cadenas

s2 db 0dh,0ah , 'ch: $'

s3 db 0dh,0ah,'string2: $'

entrada DB 50 entrada: La longitud de la cadena de entrada no excede 50

IN_R DB 0,50 dup('0') El primer byte almacena la longitud de entrada real, seguido de la cadena de entrada (ASCII)

salida db 50 dup('$') después de eliminar la cadena

db'HHHHHHHH'

FIN DE DATOS fin del segmento de datos

SEGMENTO DE CÓDIGO inicio del segmento de código

ASUME CS:CODE, DS: DATA

INICIO: MOV AX,DATA

MOV DS,AX DS apunta al segmento DATA

PUSH DS

POP ES DS , ES empujado a la pila

MOV DX,OFFSET S1

MOV AH,09

INT 21H genera la cadena s1 y solicita al usuario que ingrese la cadena

MOV DX, ENTRADA OFFSET

MOV AH,0AH

INT 21H La cadena de entrada se guarda en el búfer de entrada, el formato es como se muestra arriba

MOV DX ,OFFSET S2

MOV AH,09

INT 21H Genera la cadena s2 y solicita al usuario que ingrese los caracteres que se eliminarán

MOV CL, IN_R CL almacena la entrada real La longitud de la cadena

MOV CH,0 CH=0

MOV BX,OFFSET IN_R+1 BX apunta a la entrada real string

MOV DI,OFFSET OUTPUT DI apunta a la cadena que se generará

MOV AH,01

INT 21H Ingrese el carácter que desea eliminar y guárdelo en AL

LOOP1:

MOV AH,[BX]

CMP AH,AL Compara si los caracteres de la cadena son los mismos que los caracteres que se van a eliminar

JE NO_COPY Si son iguales, ejecute la operación Eliminar

MOV [DI], AH Si es diferente, copie el carácter a la cadena de salida

INC DI puntero DI más 1

NO_COPY:

p>

INC BX Este carácter no se envía a la cadena de salida

LOOP LOOP1 bucle hasta el final

MOV DX,OFFSET S3

MOV AH ,09

INT 21H Cadena de salida s3

MOV DX, SALIDA OFFSET

MOV AH,09

INT 21H Salida después de la eliminación Cadena de

MOV AH,4CH

INT 21H Regreso a DOS

CODE ENDS final del segmento de datos

FIN INICIO