Professional Documents
Culture Documents
Untitled
Untitled
Untitled
data
ms1 BYTE "Ingrese una frase: ",0
palabra BYTE 256 DUP (?)
ms2 BYTE "Numero de caracteres ingresados: ",0
conteo DWORD ?
.code
main PROC
call Clrscr
mov edx,OFFSET ms1
call WriteString
mov edx,OFFSET palabra
mov ecx,SIZEOF palabra
call ReadString
mov esi,OFFSET palabra
mov ebx,0
conteoloop:
cmp BYTE PTR [esi],0
je conteodone
inc ebx
inc esi
jmp conteoloop
conteodone:
mov conteo,ebx
call Crlf
mov edx,OFFSET ms2
call WriteString
mov eax,conteo
call WriteDec
call Crlf
call WaitMsg
exit
main ENDP
END main
.data
ms1 BYTE "Ingrese una cadena: ",0
cadena BYTE 256 DUP (?)
ms2 BYTE "Ingrese la posicion a modificar: ",0
ms3 BYTE "Ingrese el caracter para reemplazar: ",0
result BYTE "La cadena modificada es: ",0
result2 BYTE " posicion: ",0
result3 BYTE ", caracter usado: ",0
pos DWORD ?
letra BYTE ?
.code
main PROC
call Clrscr
mov edx,OFFSET ms1
call WriteString
mov edx,OFFSET cadena
mov ecx,SIZEOF cadena
call ReadString
mov edx,OFFSET ms2
call WriteString
call ReadInt
mov pos,eax
mov edx,OFFSET ms3
call WriteString
mov esi,OFFSET cadena
mov ecx,0
call ReadChar
mov letra,al
loop1:
cmp BYTE PTR [esi],0
je loop1_done
inc ecx
cmp ecx,pos
je loop1_replace
inc esi
jmp loop1
loop1_replace:
movzx eax,letra
mov BYTE PTR [esi],al
jmp loop1_done
loop1_done:
call Crlf
mov edx,OFFSET result
call WriteString
mov edx,OFFSET cadena
call WriteString
mov edx,OFFSET result2
call WriteString
mov eax,pos
call WriteDec
mov edx,OFFSET result3
call WriteString
movzx eax,letra
call WriteChar
call Crlf
call WaitMsg
exit
main ENDP
END main