Mostra notizie nelle discussioni
Avatar
☺
Scritto da
altg
utente che non utiene
il 2013-08-26 00:37:43.0 alle 2013-08-26 00:37:43.0
Trollate totali: 11540
Per la cronaca, il sorgente che avevo scritto qualche giorno fa...
...e` cambiato. Ho ripulito un po' la sintassi per l'accesso alle variabili locali. Prima era necessario (ma abbastanza stupido) far riferimento alle locali per esteso, come operandi indiretti basati su un indirizzo contenuto (per convenzione) nel registro E. Quindi veniva fuori ad esempio "e [n]" (locale n nel frame puntato da e). Ora, dato che tanto E e` l'unico registro che per convenzione e` designato callee-saved (cioe` viene salvato dalle subroutine chiamate, piuttosto che dal chiamante), e che quindi e` la scelta piu` ovvia per usarlo come base del frame locale, ho implicitato l'indirezione. In soldoni, basta scrivere n. Con la lingua fuori

Vabbe' insomma questo e` come appare dopo la cura:
http://anynowhere.com/personal/atmout-new.txt

E questo, per confronto, e` come appariva prima della cura:
http://anynowhere.com/personal/atmout.txt

Ah si`, gia` che c'ero, ho eliminato i duepunti tra % (il nome del registro di riserva) e l'espressione che indica lo scostamento, quando si indirizza indirettamente basandosi sul registro di riserva. Anche quello ripulisce un po' la sintassi e la rende coerente con altre indirezioni basate sui registri generici. Umm...

glossario:

registri generici = quelli che possono essere usati liberamente per dati e indirizzi, e il cui accesso e` ortogonale attraverso il set d'istruzioni

ortogonalita` del set d'istruzioni = vedere wikipedia, forse Anonimo

registro di riserva = designato dal set di L.in.oleum, solitamente usato per implementare spostamenti da memoria a memoria su macchine load-store, ma nella versione 3 puo` essere usato in un sottoinsieme di circostanze, tra cui per comporre certi operandi a indirizzamento indiretto

indirizzamento indiretto = quando si fa riferimento a una locazione di memoria usando un registro che contiene un indirizzo base a cui viene aggiunto uno scostamento, cioe` un indice intero

frame locale = spazio di memoria in cui risiedono le variabili locali, che in Lino3 puo` essere o il call stack, o qualsiasi alto intervallo di memoria piu` persistente, incluso un blocco di heap

non sapere cosa fare = scrivere queste cose qui a quest'ora...

Pagina generata in 77 millisecondi

Utenti attivi: 11 nell'ultimo minuto, 32 negli ultimi cinque minuti, 59 negli ultimi 15 minuti