[Edumips64-devel] bug pesante, spero di sbagliarmi...
Brought to you by:
lupino3
From: Davide P. <dp...@di...> - 2007-03-27 21:19:09
|
ciao a tutti, premetto che sono reduce da una giornata infernale e domani ho altre 5 ore di lezione, QUINDI probabilmente tutto quello che leggerete di seguito e' cumulo di scemenze. Prendiamo questo frammento di codice ed carichiamolo: .data pippo: .word64 255 strippa: .asciiz "abcdefg" val: .word64 0xaabbccddffffffff bytes: .byte 1,2,3,4 .text ld r3,val(r0) trap 0 Nuova premessa, non so come formulare bene i miei dubbi, sarebbe meglio parlarne di presenza, ma lancio lo stesso il sasso e ne parliamo domani. Se osservate il riempimento in memoria data scaturito dalla direttiva .bytes sembra essere confermata la visualizzazione della memoria secondo quanto affermato nel manuale in pagina 10. Ossia che dato che si visualizza la memoria come: [byte 7] [byte 6] ... [byte 0] allora la sequenza .byte di cui sopra comincia a riempire secondo gli ordini crescenti di indirizzo, da destra verso sinistra. Ok, d'accordo, anche se nel DLx era visualizzato al contrario, ma in fondo e' solo una questione di visualizzazione. Il problema e' che se metto il numero 0xaabbccddffffffff in memoria, guardando edumips esso risulta avere il byte piu' significativo, ossia aa, in corrispondenza dell'indirizzo 7. Che e' il contrario del big endian che dovremmo usare. Avevo pensato, forse la spiegazione e' che quello che appare NON e' la trasposizione della collocazione fisica dei byte, ma l'interpretazione della intera word in esadecimale. Cioe', in realta' fisicamente sarebbero disposti come ffffffffddccbbaa ma siccome poi li leggo da destra a sinistra (dallo 0 a byte7), ma corrispondono al valore 0xaabbccddffffffff. Bene, ma se cosi' fosse la direttiva .byte 1,2,3,4 riempirebbe (da destra a sinistra) i quattro byte piu' significativi della word e creerebbe un numero grande tipo 0x0102030400000000 e NON quello piccolo che appare, dove sembra confermato che invece si rappresenta la disposizione fisica dei bit. A questo punto sono pressocche' deceduto, ne parliamo domani, pero' dateci un'occhiata. -- __Davide Patti______________________________________ www.diit.unict.it/~dpatti - icq: 122208759 "What if everything is an illusion and nothing exists? In that case, I definitely overpaid for my carpet." (W. Allen) |