Pagina 1 di 1

[Assembler] Questo programma può andare??

MessaggioInviato: 21 feb 2009, 18:02
da Wed_17
Ciao a tutti,
sto cercando di svolgere il seguente tema d'esame (esercizio 4)
http://web.diegm.uniud.it/pierluca/publ ... 41209r.pdf
sempre alla stessa pagina ci sono le definzioni delle istruzioni.
La soluizione mi è chiara, ma questa versione potrebbe andare bene oppure è sbagliata??
Codice: Seleziona tutto
TEMP_ADD:   word EE00
START:      PUSH R1
            PUSH R2
            LDWA R11 TEMP_ADD
            LDWA R10 R1
            CALL STRCPY
            POP R2
            POP R1
            LDWA R10 R2
            LDWA R11 R1
            PUSH R1
            CALL STRCPY
            POP R1
            LDWA R10 TEMP_ADD
            LDWA R11 R1
            CALL STRCPY
            HLT


STRCPY:     LDWR R12 R10
            STBR R12 R11
            JMPZ END_STRCPY
            INC R10
            INC R11
            JUMP STRCPY
END_STRCPY: RET


Grazie a tutti

Re: [Assembler] Questo programma può andare??

MessaggioInviato: 21 feb 2009, 22:19
da c1b8
Ciao,
la tua versione è corretta, ma semplificabile.
Nella STRCPY utilizzi e modifichi i registri R10, R11, R12 le stringhe originarie sono puntate da R1 ed R2 che non vengono quindi sporcati. In questo modo puoi evitare tutti i PUSH e POP prima e dopo le chiamate alla STRCPY.
Nel codice originale tali PUSH e POP erano necessarie perché i registri R1 ed R2 venivano modificati nella STRCPY.

Re: [Assembler] Questo programma può andare??

MessaggioInviato: 22 feb 2009, 0:50
da Wed_17
si si decisamente, l'ho scritto senza pensare, grazie :D