Hier ist eine Schritt-für-Schritt-Anleitung, wie Sie ein Programm in Assembler schreiben, um die Anzahl der Vokale in einer Zeichenfolge zu zählen:
1. Richten Sie das Datensegment ein :
- Deklarieren Sie die Zeichenfolge als Array von Zeichen.
- Definieren Sie einen Speicherort zum Speichern der Vokalanzahl.
2. Richten Sie das Codesegment ein :
- Beginnen Sie mit dem Einstiegspunkt des Programms, der normalerweise mit „Haupt“ oder „Start“ gekennzeichnet ist.
3. Vokalanzahl initialisieren :
- Setzen Sie die Vokalanzahl zunächst auf Null.
4. Schleife durch den String :
– Verwenden Sie eine Schleife, um jedes Zeichen in der Zeichenfolge zu durchlaufen.
5. Auf Vokale prüfen :
- Verwenden Sie innerhalb der Schleife bedingte Anweisungen, um zu überprüfen, ob das aktuelle Zeichen ein Vokal ist.
- Gebräuchliche Vokale im englischen Alphabet sind „A“, „E“, „I“, „O“ und „U“ sowie deren kleingeschriebene Entsprechungen.
6. Erhöhen Sie die Vokalanzahl :
- Wenn das aktuelle Zeichen ein Vokal ist, erhöhen Sie die Vokalanzahl.
7. Beenden Sie die Schleife :
- Setzen Sie die Schleife fort, bis das Ende der Zeichenfolge erreicht ist.
8. Zeigen Sie die Vokalanzahl an :
- Verwenden Sie Systemaufrufe oder Bibliotheksfunktionen, um die Vokalanzahl auf der Konsole anzuzeigen.
9. Beenden Sie das Programm :
- Verwenden Sie einen Systemaufruf, um das Programm erfolgreich zu beenden.
Hier ist ein Beispiel dafür, wie der Assembler-Code aussehen könnte:
„Montage
.Daten
str:.asciiz „Hallo Welt!“
vowel_count:.int 0
.Text
.global main
hauptsächlich:
xor ebx, ebx; Initialisieren Sie vowel_count auf 0
mov edi, str; String-Zeiger
mov al, [edi]; Holen Sie sich den ersten Charakter
Schleife:
cmp al, '$'; Ende der Zeichenfolge?
ich zeige; Ja, springen Sie, um die Vokalanzahl anzuzeigen
cmp al, 'A'; Überprüfen Sie, ob das aktuelle Zeichen „A“ ist.
ich inkrementiere; Ja, springen Sie, um die Vokalanzahl zu erhöhen
cmp al, 'E'; Überprüfen Sie, ob das aktuelle Zeichen „E“ ist.
Ich erhöhe
cmp al, 'I'; Überprüfen Sie, ob das aktuelle Zeichen „I“ ist.
Ich erhöhe
cmp al, 'O'; Überprüfen Sie, ob das aktuelle Zeichen „O“ ist.
Ich erhöhe
cmp al, 'U'; Überprüfen Sie, ob das aktuelle Zeichen „U“ ist.
Ich erhöhe
cmp al, 'a'; Überprüfen Sie, ob das aktuelle Zeichen „a“ ist.
Ich erhöhe
cmp al, 'e'; Überprüfen Sie, ob das aktuelle Zeichen „e“ ist.
Ich erhöhe
cmp al, 'i'; Überprüfen Sie, ob das aktuelle Zeichen „i“ ist.
Ich erhöhe
cmp al, 'o'; Überprüfen Sie, ob das aktuelle Zeichen „o“ ist.
Ich erhöhe
cmp al, 'u'; Überprüfen Sie, ob das aktuelle Zeichen „u“ ist.
Ich erhöhe
Inkrement:
inc ebx; Vokalanzahl erhöhen
inc edi; Zum nächsten Zeichen wechseln
JMP-Schleife; Springe erneut zur Schleife
Anzeige:
mov eax, 4; Systemaufruf zum Schreiben
mov ebx, 1; Dateideskriptor (stdout)
mov ecx, str; Nachricht zum Schreiben
mov edx, 13; Nachrichtenlänge + Zeilenumbruchzeichen
Systemaufruf; Systemaufruf durchführen
mov eax, 1; Systemaufruf zum Beenden
mov ebx, 0; Exit-Status (Erfolg)
Systemaufruf; Systemaufruf durchführen
„
Dieser Code geht von einer Linux-Umgebung aus und verwendet die Aufrufkonventionen von System V. Es initialisiert die Vokalanzahl auf Null, iteriert über die Zeichenfolge, prüft jedes Zeichen auf Vokale und erhöht die Anzahl entsprechend. Schließlich wird die Vokalanzahl angezeigt und das Programm erfolgreich beendet.