comment ! Hacer un programa en lenguaje ensamblador, haciendo uso de procedimientos y primitivas de cadena, que tenga 3 procedimientos: - Al primer procedimiento se le debe enviar los parámetros necesarios, y que lea de teclado una cadena, de una longitud no menor de 30 caracteres, sin utilizar ReadString y la almacene en la CAD1. - El Segundo procedimiento, debe comparar todos los caracteres de CAD2 en CAD1, y debe almacenar en un arreglo cuantas letras de CAD2 están contenidas en CAD1. - Y un tercer procedimiento que muestre las dos cadenas y la cantidad de letras de CAD2 contenidas en CAD1. No puede usar ReadString y debe utilizar primitivas de cadena, dada la siguiente sección de datos: .Data Cad1 ; Debe definir correctamente esta variable Cad2 Byte "abuelito",0 Array byte 8 dup (?); Debe definir un arreglo para llevar el control del conteo Realizar lo siguiente: - Plantilla correcta (5%) - Definición del arreglo y variable para la cadena (10%) - Procedimiento 1: Leer la cadena y almacenarla en la variable indicada (20%) - Procedimiento 2: Comparar las dos cadenas y almacenar la cuenta en el arreglo (30%) - Procedimiento 3: Mostrar las dos cadenas y la cantidad de letras contenidas (30%) - Envío de parámetros y llamada de los procedimientos correctamente (5%) Por ejemplo (usted debe usar los datos indicados, no estos, si los usa tendrá 2 puntos menos si los usa): Si tenemos las cadenas CAD1=“Ensamblador” y CAD2=“AEIOU” La salida debe mostrarse así: Cadena ingresada: Ensamblador Cadena a comparar: AEIOU Hay 2 letras A Hay 1 Letras E Hay 0 Letras I Hay 1 Letras O Hay 0 Letras U ! Include Irvine32.Inc len=30 .Data ; Poner aqui las variables a utilizar Cad1 byte len dup (?),0 ; Debe definir correctamente esta variable Cad2 Byte "abuelito",0 Array byte ? Msg1 byte "Ingrese una cadena, no menor de 30 caracteres",0 Msg2 byte "Las cadenas a comparar son",0 Msg3 byte 'Cantidad de ',0 cont byte 0 Letras byte ?,0 lazo byte 0 .Code Main Proc Call ClrScr ; Limpia la Pantalla This study source was downloaded by 100000818533928 from CourseHero.com on 10-19-2022 21:20:26 GMT -05:00 https://www.coursehero.com/file/92886817/Parcial3txt/ mov eax,0 call entrarCad ; call Comparar call Resultados Call CrLf Call WaitMsg Exit Main EndP ; Hace un Salto de linea ; Espera a que presionen <ENTER> ; Termina el programa ; Procedimiento 1: Leer la cadena y almacenarla en la variable indicada (20%) entrarCad Proc mov edx ,offset Msg1 call WriteString call CrLf mov edi ,offset cad1 mov ecx,len Read: Call ReadChar call WriteChar StoSB Loop Read call CrLf mov edx, offset cad1 call WriteString call CrLf ret entrarCad EndP ;- Procedimiento 2: Comparar las dos cadenas y almacenar la cuenta en el arreglo (30%) comparar Proc mov ecx, lengthof cad2 - 1 mov esi, 0 Inicio1: mov al, cad2[esi] mov Letras[esi], al call WriteChar mov lazo, cl mov ecx , lengthof cad1 mov edi, offset cad1 Inicio2: scasb jnz Seguir inc cont seguir: loop Inicio2 mov eax, 0 mov al, cont mov Array[esi], al call WriteDec call CrLf mov cl, lazo inc esi mov cont, 0 loop inicio1 ret Comparar EndP ;mostarr arreglo procedimeinto 3 This study source was downloaded by 100000818533928 from CourseHero.com on 10-19-2022 21:20:26 GMT -05:00 https://www.coursehero.com/file/92886817/Parcial3txt/ Resultados Proc ;************************ mov ecx, 0 mov ecx, lengthof cad2 - 1 mov eax, ecx mov esi, 0 Resultados1: mov edx, offset Msg3 call WriteString mov al, Letras[esi] call WriteChar mov al, ":" call WriteChar mov al, " " call WriteChar mov al, Array[esi] call WriteDec inc esi call CrLf loop Resultados1 call CrLf ret Resultados EndP End Main This study source was downloaded by 100000818533928 from CourseHero.com on 10-19-2022 21:20:26 GMT -05:00 https://www.coursehero.com/file/92886817/Parcial3txt/ Powered by TCPDF (www.tcpdf.org)