| V I S U A L I Z Z A D I S C U S S I O N E |
| jwein |
Inserito il - 10/01/2009 : 16:34:15 Ciao a tutti! 
Dato che ho l'esame di laboratorio mercoledi vi vorrei esporre un dubbio che mi è venuto circa l'implementazione delle procedure in assembly. :)
Pensate che sia meglio ( e meglio visto dai prof. ) sviluppare procedure che agiscono direttamente ed esplicitamente sui dati del programma o procedure che svolgono le operazioni su registri generici ( ovviamente richiedendo implicitamente il fatto che prima che la procedura venga chiamata il programmatore copi i dati nei registri utilizzati ) ?
Il secondo caso è forse più corretto dal punto di vista formale, ma è più difficoltoso e meno intuitivo per il programmatore...
Inoltre pensate che sia meglio utilizzare i vettori nella forma 'vettore[registro]' o caricare in un registro l'indirizzo base del vettore e riferirsi agli elementi come '[registro+offset]' ?
Infine, meglio usare loop nelle operazioni con i vettori o cicli costruiti con apposite 'cmp' ? Io mi trovo bene con i loop, ma ciò richiede l'uso di due registri... Il CX, automaticamente decrementato, e un registro indice da incrementare di volta in volta.
Spero di essere stato chiaro nel formulare le domande... La questione che ho più a cuore è probabilmente la prima, anche se penso vada un po' a gusti...
Grazie in anticipo :) Ciao! |
| 4 U L T I M E R I S P O S T E (in alto le più recenti) |
| jwein |
Inserito il - 10/01/2009 : 17:55:58 Ok grazie, e crepi il lupo :) |
| Mk178 |
Inserito il - 10/01/2009 : 17:46:53 se ciò ke t chiede la traccia è ciò ke svolge già la procedura, nn credo ke puoi usarla...(devi "far vedere" come si fanno certe cose, nn puoi farle fare a procedure già implementate) per tutto il resto, complimenti per le "preoccupazioni", ti avviso ke tutti gli accorgimenti ke stai prendendo alla fine nn sono molto rilevanti al superamento dell esame(l'importante è ke il codice esegua ciò ke la traccia richieda), xò è importante ke t poni certi quesiti... ;)
...in bocca al lupo per l'esame! |
| jwein |
Inserito il - 10/01/2009 : 17:27:35 Ciao! Grazie per la risposta. Era un po' come immaginavo.. Dimenticavo, penso sia buona abitudine eseguire un push dei registri all'interno della procedura all'inizio e ripristinarli con un pop alla fine di essa in modo che il codice non influenzi il resto del programma, no ? Infine... sai/sapete se è possibile vedere la lista degli interrupt di ralph brown e se è possibile usare le procedure definite in emu8086.inc ( PRINT_NUM, SCAN_NUM, ... ) durante l'esonero ( corso A ) ? |
| maria lucia |
Inserito il - 10/01/2009 : 16:44:42 --------------------------------------------------- Pensate che sia meglio ( e meglio visto dai prof. ) sviluppare procedure che agiscono direttamente ed esplicitamente sui dati del programma o procedure che svolgono le operazioni su registri generici ( ovviamente richiedendo implicitamente il fatto che prima che la procedura venga chiamata il programmatore copi i dati nei registri utilizzati ) ? ---------------------------------------------------
risp: procedure che svolgono le operazioni su registri generici
--------------------------------------------------- Inoltre pensate che sia meglio utilizzare i vettori nella forma 'vettore[registro]' o caricare in un registro l'indirizzo base del vettore e riferirsi agli elementi come '[registro+offset]' ? ---------------------------------------------------
risp: è indifferente
--------------------------------------------------- Infine, meglio usare loop nelle operazioni con i vettori o cicli costruiti con apposite 'cmp' ? Io mi trovo bene con i loop, ma ciò richiede l'uso di due registri... Il CX, automaticamente decrementato, e un registro indice da incrementare di volta in volta. ---------------------------------------------------
risp: se usi i vettori sarebbe preferibile usare loop, però non è impossibile usare i cicli se nella traccia non è richiesto espilicitamente di usare loop...l'importante è che il programma funzioni correttamente
|
|
|