“Conocimiento Programación>Lenguajes De Programación

¿Cómo escribirías un programa que cuente el número de vocales en lenguaje ensamblador de cadenas?

2015/6/9
Aquí hay una guía paso a paso sobre cómo escribir un programa en lenguaje ensamblador para contar el número de vocales en una cadena:

1. Configurar el segmento de datos :

- Declarar la cadena como una matriz de caracteres.

- Definir una ubicación de memoria para almacenar el recuento de vocales.

2. Configurar el segmento de código :

- Comience con el punto de entrada del programa, generalmente denominado "principal" o "inicio".

3. Inicializar el recuento de vocales :

- Establezca el recuento de vocales en cero inicialmente.

4. Recorre la cuerda :

- Utilice un bucle para iterar sobre cada carácter de la cadena.

5. Comprueba si hay vocales :

- Dentro del bucle, utilice declaraciones condicionales para comprobar si el carácter actual es una vocal.

- Las vocales comunes en el alfabeto inglés son 'A', 'E', 'I', 'O' y 'U', y sus equivalentes en minúsculas.

6. Incrementar el recuento de vocales :

- Si el carácter actual es una vocal, incrementa el recuento de vocales.

7. Finalizar el ciclo :

- Continuar el bucle hasta llegar al final del hilo.

8. Mostrar el recuento de vocales :

- Utilice llamadas al sistema o funciones de biblioteca para mostrar el recuento de vocales en la consola.

9. Salga del programa :

- Utilice una llamada al sistema para salir del programa con éxito.

A continuación se muestra un ejemplo de cómo podría verse el código ensamblador:

```asamblea

.datos

str:.asciiz "¡Hola mundo!"

recuento_vocal:.int 0

.texto

.global principal

principal:

xor ebx, ebx; Inicializar vocal_count a 0

mover edi, str; Puntero de cadena

mov al, [edi]; Obtener el primer personaje

bucle:

cmp al, '$'; ¿Fin de la cuerda?

je mostrar; Sí, salta para mostrar el recuento de vocales

cmp al, 'A'; Compruebe si el carácter actual es 'A'

yo incremento; Sí, salta para incrementar el recuento de vocales.

cmp al, 'E'; Compruebe si el carácter actual es 'E'

yo incremento

cmp al, 'yo'; Comprueba si el personaje actual es 'I'

yo incremento

cmp al, 'O'; Compruebe si el carácter actual es 'O'

yo incremento

cmp al, 'U'; Compruebe si el carácter actual es 'U'

yo incremento

cmp al, 'a'; Compruebe si el carácter actual es 'a'

yo incremento

cmp al, 'e'; Compruebe si el carácter actual es 'e'

yo incremento

cmpal, 'yo'; Compruebe si el carácter actual es 'i'

yo incremento

cmp al, 'o'; Compruebe si el carácter actual es 'o'

yo incremento

cmp al, 'u'; Compruebe si el carácter actual es 'u'

yo incremento

incremento:

inc ebx; Incrementar el recuento de vocales

edición inc; Pasar al siguiente personaje

bucle jmp; Saltar al bucle de nuevo

mostrar:

movimiento eax, 4; Llamada al sistema para escribir

mov ebx, 1; Descriptor de archivo (salida estándar)

mov ecx, cadena; mensaje para escribir

movimiento edx, 13; Longitud del mensaje + carácter de nueva línea

llamada al sistema; Hacer llamada al sistema

movimiento eax, 1; Llamada al sistema para salir

movimiento ebx, 0; Estado de salida (éxito)

llamada al sistema; Hacer llamada al sistema

```

Este código asume un entorno Linux y utiliza las convenciones de llamada de System V. Inicializa el recuento de vocales a cero, itera sobre la cadena, comprueba cada carácter en busca de vocales e incrementa el recuento en consecuencia. Finalmente, muestra el recuento de vocales y sale del programa con éxito.

Lenguajes De Programación
Cómo calcular el Código Hamming
Cómo actualizar Joomla ! K2
Plan de Proyecto para el Desarrollo de Software
Cómo diseñar un carro de compras
Cómo escribir un Índice de Función recursiva de Max
Una explicación de XBlite
Cómo aprender a programar en línea
Cómo hacer Software Review Movie
Conocimiento de la computadora © http://www.ordenador.online