1
Dudas y pedidos generales / [SOLUCIONADO] Programa que cuenta caracteres de cadena de texto (Ayuda)
« en: Febrero 22, 2021, 05:34:53 pm »
Hola estoy teniendo problemas la la hora de realizar este programa, se supone que el programa debe de contar los caracteres que escribes y después imprimirlos diciendo cuantas veces aparece tal carácter, por ejemplo
cadena: Anita lava la tina
A = 1
a = 5
n = 2
i = 2
t = 2
y así sucesivamente
alguien que sepa que me falla? o que me pueda ayudar con esto, seria de mucha ayuda...
Esto es lo que tengo:
___________________________
cadena: Anita lava la tina
A = 1
a = 5
n = 2
i = 2
t = 2
y así sucesivamente
alguien que sepa que me falla? o que me pueda ayudar con esto, seria de mucha ayuda...
Esto es lo que tengo:
___________________________
Código: (asm) [Seleccionar]
data segment
; add your data here!
cadena db 258 dup(0) ; para definir bits
resultados db 00h
letra db 00h
numero db 00h
ends
stack segment
dw 258 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
mov cadena[00], 0ffh
lea dx, cadena
mov ah, 0ah
int 21h
mov si, 02h
dec ah
inicio: mov al, cadena[si]
mov dl, ax
inc resultados[dl]
inc si
cmp al, 0dh
jz imprimir
jmp inicio
imprimir: mov ah, 09h
mov dx, resultados
int 21h
mov bx, si
mov letra[0], bl
lea dx, letra
int 21h
mov al, resultados[si]
mov ah, 00h
mov bl, 64h
div bl
add al, 30h
mov numero[0], al
div bl
add ah, 30h
mov numero[2], ah
add al, 30h
mov numero[1], al
lea dx, numero
mov ah, 09h
int 21h
div bl
add ah, 30h
mov numero[2], ah
add al,
ciclo: cmp si, 080h
jz fin
cmp si, 0dh
jz siguiente
mov al, resultado[si]
cmp al, 00h
jz siguiente
mov ah, 09h
lea dx, l3
siguiente: inc si
jmp ciclo
fin: lea dx, pkey
mov ah, 9
int 21h
mov ah, 01h
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start ; set entry point and stop the assembler.