1. Imposta il segmento di dati :
- Dichiara la stringa come un array di caratteri.
- Definire una posizione di memoria per memorizzare il conteggio delle vocali.
2. Imposta il segmento di codice :
- Inizia con il punto di ingresso del programma, solitamente etichettato come "principale" o "inizio".
3. Inizializza il conteggio delle vocali :
- Imposta inizialmente il conteggio delle vocali su zero.
4. Esegui il ciclo attraverso la stringa :
- Utilizzare un ciclo per scorrere ogni carattere nella stringa.
5. Controlla le vocali :
- All'interno del ciclo, usa le istruzioni condizionali per verificare se il carattere corrente è una vocale.
- Le vocali comuni nell'alfabeto inglese sono "A", "E", "I", "O" e "U" e i loro equivalenti minuscoli.
6. Incrementa il conteggio delle vocali :
- Se il carattere corrente è una vocale, incrementa il conteggio delle vocali.
7. Termina il ciclo :
- Continuare il ciclo fino a raggiungere la fine della corda.
8. Visualizza il conteggio delle vocali :
- Utilizzare le chiamate di sistema o le funzioni della libreria per visualizzare il conteggio delle vocali sulla console.
9. Uscire dal programma :
- Utilizzare una chiamata di sistema per uscire dal programma con successo.
Ecco un esempio di come potrebbe apparire il codice assembly:
"assemblea".
.dati
str:.asciiz "Ciao mondo!"
conteggio_vocali:.int 0
.testo
.principale globale
principale:
xor ebx, ebx; Inizializza vocal_count su 0
mov edi, str; Puntatore a stringa
mov al, [edi]; Ottieni il primo carattere
ciclo continuo:
cmp al, '$'; Fine della corda?
io display; Sì, passa alla visualizzazione del conteggio delle vocali
cmp al, 'A'; Controlla se il carattere corrente è "A"
je incremento; Sì, salta per incrementare il conteggio delle vocali
cmp al, 'E'; Controlla se il carattere corrente è "E"
sto incrementando
cmp al, 'io'; Controlla se il carattere corrente è "I"
sto incrementando
cmp al, 'O'; Controlla se il carattere corrente è "O"
sto incrementando
cmp al, 'U'; Controlla se il carattere corrente è "U"
sto incrementando
cmp al, 'a'; Controlla se il carattere corrente è "a"
sto incrementando
cmp al, 'e'; Controlla se il carattere corrente è "e"
sto incrementando
cmp al, 'i'; Controlla se il carattere corrente è "i"
sto incrementando
cmp al, 'o'; Controlla se il carattere corrente è "o"
sto incrementando
cmp al, 'u'; Controlla se il carattere corrente è "u"
sto incrementando
incremento:
incluso ebx; Aumenta il conteggio delle vocali
inc edi; Passa al carattere successivo
ciclo jmp; Vai di nuovo al loop
display:
movimento eax, 4; Chiamata di sistema per scrivere
movimento ebx, 1; Descrittore di file (stdout)
mov eccx, str; Messaggio da scrivere
mov edx, 13; Lunghezza del messaggio + carattere di nuova riga
chiamata di sistema; Effettua una chiamata di sistema
movimento eax, 1; Chiamata di sistema per uscire
movimento ebx, 0; Stato di uscita (successo)
chiamata di sistema; Effettua una chiamata di sistema
```
Questo codice presuppone un ambiente Linux e utilizza le convenzioni di chiamata System V. Inizializza il conteggio delle vocali su zero, esegue l'iterazione sulla stringa, controlla la presenza di vocali in ogni carattere e incrementa il conteggio di conseguenza. Infine, visualizza il conteggio delle vocali ed esce con successo dal programma.
Programmazione © www.354353.com