PDA

Visualizza la versione completa : [Assembly] Trovare lunghezza stringa


Loptus
29-05-2009, 16:59
Come da titolo, mi potete postare e spiegare un modo semplice per calcolare la lunghezza di una stringa?

So di chiedere tanto, ma in assembly non sono molto spiccato ed ho una sola settimana per consegnare un progetto per l'università. Se potete, aiutatemi.

Grazie in anticipo.

oregon
29-05-2009, 17:52
Assembly 8086 ?

Una stringa e' terminata da 0 binario ... utilizza un puntatore all'inizio e un registro per contare finche' non trovi 0 ...

Loptus
29-05-2009, 18:59
Sono abbastanza ignorante in materia. Penso si dica Assembly per MIPS. Poi ti chiedo scusa se non è così..

In pratica dovrei fare una sorta di ciclo che conta le lettere da 1 a n?

XWolverineX
29-05-2009, 19:05
No, devi contare finchè non raggiungi uno 0

Loptus
30-05-2009, 00:22
Scusate, ma non so proprio come si faccia.

Potete postare un piccolo esempio?

XWolverineX
30-05-2009, 10:35
Supponi registri D-A




STRINGA DC.B 'Peppino morirà presto',0

MAIN CLR D0
LEA STRINGA,A0
LOOP MOVE.B D1,A0
CMP D1,#0
BNE FINESTR
ADD D0,#1
JMP LOOP
FINESTR
; Fai quello che ti pare.

Loptus
30-05-2009, 11:27
Altra domanda, un pò OT ma non mi pare il caso di aprire un nuovo thread solo per lei.

Quale sarebbe la funzione della syscall 9?

oregon
30-05-2009, 12:29
syscall 9 ... di cosa parliamo?

Se non chiarisci il contesto, il sistema che stai usando, ci vuole la sfera di cristallo dei maghi per risponderti ...

Loptus
30-05-2009, 14:37
le syscall sono le chiamate di sistema, come per esempio per chiudere il programma, leggere e stampare stringhe o interi.. ce l'hai presente o è una cosa che si usa solo a livello didattico?


li $v0, 4
la $a0, intestazione
syscall

Questo è l'esempio della stampa a video di una stringa.

oregon
30-05-2009, 15:17
So cosa e' una syscall ... devi indicare il CONTESTO in cui operi ...

Loading