Uploaded by Juan Vanegas

Parcial3.txt (1)

advertisement
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)
Download