Ensamblador - Ensamblador: Contar el número de palabras

 
Vista:
sin imagen de perfil
Val: 8
Ha mantenido su posición en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

Ensamblador: Contar el número de palabras

Publicado por Daniel Giret (3 intervenciones) el 07/10/2020 00:10:09
Tengo que entregar estos 2 programas en ensamblador:
- Contar el número de palabras.
- Calcular la distancia Levenshtein para dos cadenas dadas
ESPERO SU AYUDA, MUCHAS GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 8
Ha mantenido su posición en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

Ensamblador: Contar el número de palabras

Publicado por Daniel Giret (3 intervenciones) el 08/10/2020 04:19:12
Lo que pasa es que soy nuevo en este lenguaje ensamblador y no entiendo mucho del tema, si podrias ayudarme???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ensamblador: Contar el número de palabras

Publicado por Nacho (81 intervenciones) el 08/10/2020 19:24:03
Mira qué fácil es. Coges este código
1
2
3
4
5
6
7
char frase[] = "Programa en ensamblador que cuenta palabras";
int i = 0, cont = 1;
while (frase[i]!=0)
{
    if (frase[i] == '\ ') cont++;
    i++;
}

y te queda en ensamblador así
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int i = 0, cont = 1;
01163381  mov         dword ptr [i],0
01163388  mov         dword ptr [cont],1
    while (frase[i]!=0)
0116338F  mov         eax,dword ptr [i]
01163392  movsx       ecx,byte ptr frase[eax]
01163397  test        ecx,ecx
01163399  je          main+7Ch (011633BCh)
    {
        if (frase[i] == '\ ') cont++;
0116339B  mov         eax,dword ptr [i]
0116339E  movsx       ecx,byte ptr frase[eax]
011633A3  cmp         ecx,20h
011633A6  jne         main+71h (011633B1h)
011633A8  mov         eax,dword ptr [cont]
011633AB  add         eax,1
011633AE  mov         dword ptr [cont],eax
        i++;
011633B1  mov         eax,dword ptr [i]
011633B4  add         eax,1
011633B7  mov         dword ptr [i],eax
    }
011633BA  jmp         main+4Fh (0116338Fh)

Pones dos etiquetas, le quitas las paridas que hacen los compiladores y ya lo tienes. Pero tendrías que aprender bien ensamblador porque si no vas a ser un desgraciado toda tu vida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha mantenido su posición en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

Ensamblador: Contar el número de palabras

Publicado por Daniel Giret (3 intervenciones) el 10/10/2020 20:57:03
Gracias de antemano, me sirvio bastante
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ensamblador: Contar el número de palabras

Publicado por Jefferson Villamarin (1 intervención) el 07/03/2021 16:21:02
Saludos !..
Sobre el tema de: Calcular la distancia Levenshtein para dos cadenas dadas ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar