Domanda

Ho un progetto urgente in cui dovrei implementare bignum. Ho solo esperienza di lavoro in IA-32, tutto il consiglio di base sarebbe utile.

È stato utile?

Soluzione

Se non si dispone di hardware per imparare l'architettura su, forse SPIM può aiutare.

Altri suggerimenti

mi piacerebbe scrivere in C o C++ e utilizzare il compilatore di generare codice assembly. È possibile cercare le cose per risolvere (se non è un compilatore stellare), e lungo la strada, si apprenderà come le opere in linguaggio assembly, le caratteristiche della CPU, ecc.

In primo luogo, non farlo. Invece, utilizzare una libreria esistente, come ad esempio GMP . riferimenti Wikipedia un intero elenco di tali librerie, con le varie licenze. Alcuni sono anche rilasciato sotto dominio pubblico.

Ora, supponiamo che non è possibile tollerare utilizzando una libreria esistente per qualche motivo. Quindi il mio consiglio è: farlo in C. MIPS32 è un RISC come l'architettura progettato per rendere la compilazione efficiente. Dal momento che i compilatori C non sono perfetti, alcuni guadagno di performance può essere raggiunto facendo assemblaggio manuale, ma non è un grande guadagno (come regola generale, si aspettano una velocità + 30% per il montaggio ottimizzato rispetto al ottimizzato C - e uno sviluppo terribilmente più grande costo, anche).

Detto questo, si potrebbe voler sapere che cosa un MIPS32 può fare, in modo da poter meglio ottimizzare il codice sorgente C, e controllare quello che il compilatore produce, per decidere se si sta facendo bene o no. Una fonte bene è la "MIPS32® Architecture per i programmatori" che può essere scaricato da questa pagina . Hai voglia di avere uno sguardo a volumi I e II.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top