Discussione:
assemblatori e conversione in file hex
(troppo vecchio per rispondere)
stevez
2007-06-13 15:41:00 UTC
Permalink
Ciao a tutti,
spero di non disturbare.
Devo scrivere dei programmini assembler sorgenti e convertirli in .hex da
caricare su PIC (es: il classico 16F84 ecc.)
Sto cercando uno o piu' programmi per assemblare o disassemblare i files
ottenuti ma non so esattamente cosa cercare, (anche per mia conoscenza
discreta ma non ottima del problema). Sono anche consapevole che l'argomento
e' assai datato ma ora mi interessa ugualmente.

Preciso:
-ho il programmatore dei PIC con porta RS232 ed il programma PIC.programmer
che so
usare. Con questo tool carico sui PIC i files .hex .
Tale programma scompatta anche un file .hex in assembler ma non riesco poi
(non so
se lo fa') a trasferire eventuali modifiche nel nuovo file .hex che vorrei
ottenere. In fine quest'ultimo e' il mio problema.

-ho realizzato vari montaggi con PIC come frequenzimetri, generatori o
decodificatori di CW
, sintonia digitale per ricevitori, trasmettitori ecc. scrivendo sui
relativi PIC files .hex di altri.
-ho un programma Mpasm grafico (fu pubblicato su CQ-Elettronica ) col quale
si possono fare bene e facilmente solo piccole cose.
-ho anche buona volonta' di apprendere.
Qualcuno ha voglia di darmi qualche input di dove cercare e cosa?
Grazie anticipate
Stevez

P.S.
per contatti diretti togliere X e Y dall'indirizzo
Stefano Martini
2007-06-13 16:18:29 UTC
Permalink
stevez ha scritto:
Con questo tool carico sui PIC i files .hex .
Post by stevez
Tale programma scompatta anche un file .hex in assembler ma non riesco poi
(non so
se lo fa') a trasferire eventuali modifiche nel nuovo file .hex che vorrei
ottenere. In fine quest'ultimo e' il mio problema.
Quindi chiedi come disassemblare e riassemblare il programma?
Premetto che non sempre la cosa è legale, in quanto spesso i file
vengono forniti già compilati dall'autore proprio perché questi non
vuole che il file venga modificato da terzi! Comunque per disassemblare
il file cerchi un disassemblatore con Google, così otterrai il file
sorgente (ovviamente non ci saranno le label, in quanto nel processo di
assemblamento queste vengono tramutate in indirizzi), fai le modifiche
che ritieni opportuno fare e poi riassembli con l'assemblatore (MPASM).
Dopodiché scrivi il nuovo file nel pic.

Se non era questo che volevi sapere, per cortesia spiega meglio cosa
intendi fare che cerchiamo di esserti utile.

Ciao!
--
Stefano Martini(Lemming)

Audaces fortuna juvat (Virgilio, Eneide)
Sito web: http://www.lemming.it
stevez
2007-06-13 20:40:11 UTC
Permalink
Post by stevez
Con questo tool carico sui PIC i files .hex .
Post by stevez
Tale programma scompatta anche un file .hex in assembler ma non riesco
poi (non so
se lo fa') a trasferire eventuali modifiche nel nuovo file .hex che
vorrei ottenere. In fine quest'ultimo e' il mio problema.
Quindi chiedi come disassemblare e riassemblare il programma?
Premetto che non sempre la cosa è legale, in quanto spesso i file vengono
forniti già compilati dall'autore proprio perché questi non vuole che il
file venga modificato da terzi! Comunque per disassemblare il file cerchi
un disassemblatore con Google, così otterrai il file sorgente (ovviamente
non ci saranno le label, in quanto nel processo di assemblamento queste
vengono tramutate in indirizzi), fai le modifiche che ritieni opportuno
fare e poi riassembli con l'assemblatore (MPASM).
Dopodiché scrivi il nuovo file nel pic.
Se non era questo che volevi sapere, per cortesia spiega meglio cosa
intendi fare che cerchiamo di esserti utile.
Ciao!
--
Stefano Martini(Lemming)
Audaces fortuna juvat (Virgilio, Eneide)
Sito web: http://www.lemming.it
Ciao Stefano,
grazie anzitutto per la gentile risposta.
Desidero effettivamente fare cio' che hai capito. Conosco il discorso del
ripspetto della proprieta' intellettuale.Tuttavia mi necessita qualche
spiegazione ulteriore poiche' mi accingo a costruire un eccitatore HF-ssb su
un progetto governato in parte da PIC ove l'autore mette a disposizione il
file .hex indicando, a chi voglia duplicare il suo progetto, alcune
modifiche che possono o non essere incluse. Da qui la mia necessita' di
intervenire sul detto file .hex (anche per aumentare la mia conoscenza non
troppo elevata in materia). Diciamo che per queste cose sarei poco piu' di
un buon "giapponese"...a copiare...quindi capisco... ;-).
-dunque:
non so che estensione debba avere il sorgente (.txt ?). Dopo aver caricato
un file .hex su PIC-Programmer riesco a vedere il file sorgente ma non
riesco poi a proseguire.
Ho cosultato le indicazioni della Microchip e mi sono un po' perso in mezzo
a mpasm (di cui ho scaricato un anno addietro una release demo originale e
non sono mai riuscito ad usare).
Avrai capito che in questa fase critica devo esser un po' condotto. Come mi
muovo?
Grazie ancora per una piu' completa spiegazione.
Ciao
Stevez
Luigi C.
2007-06-13 21:38:33 UTC
Permalink
Post by stevez
un progetto governato in parte da PIC ove l'autore mette a disposizione il
file .hex indicando, a chi voglia duplicare il suo progetto, alcune
modifiche che possono o non essere incluse.
Poichè il file hex contiene non il sorgente ma il codice da caricare nel pic,
mi sembra un controsenso suggerire delle modifiche e poi rilasciare solo il
file hex, costringendo ad una reverse engineering in genere molto faticosa e
non sempre fruttuosa.
Post by stevez
non so che estensione debba avere il sorgente (.txt ?).
In genere è asm.
Post by stevez
Dopo aver caricato
un file .hex su PIC-Programmer riesco a vedere il file sorgente ma non
riesco poi a proseguire.
Alcuni software per programmare i pic mettono a disposizione una semplice
utility per il disassembly, ovvero per estrarre un sorgente (assembly) a
partire dal codice macchina (file hex). Una volta visualizzato l'assembly, con
un'operazione di seleziona tutto e poi copia e incolla dovresti essere in grado
di incollare il sorgente in una documento di testo vuoto, e salvarlo poi con
estensione asm.
Post by stevez
Ho cosultato le indicazioni della Microchip e mi sono un po' perso in mezzo
a mpasm (di cui ho scaricato un anno addietro una release demo originale e
non sono mai riuscito ad usare).
Scaricati MPLAB, è una suite completa di assembler, compilatore C in versione
base e simulatore, utile per il debugging del codice. Se hai l'ADSL è meglio,
vista la dimensione del file di installazione...
stevez
2007-06-13 22:58:00 UTC
Permalink
Il giorno Wed, 13 Jun 2007 22:40:11 +0200, "stevez"
Post by stevez
un progetto governato in parte da PIC ove l'autore mette a disposizione il
file .hex indicando, a chi voglia duplicare il suo progetto, alcune
modifiche che possono o non essere incluse.
Poichè il file hex contiene non il sorgente ma il codice da caricare nel pic,
mi sembra un controsenso suggerire delle modifiche e poi rilasciare solo il
file hex, costringendo ad una reverse engineering in genere molto faticosa e
non sempre fruttuosa.
Post by stevez
non so che estensione debba avere il sorgente (.txt ?).
In genere è asm.
Post by stevez
Dopo aver caricato
un file .hex su PIC-Programmer riesco a vedere il file sorgente ma non
riesco poi a proseguire.
Alcuni software per programmare i pic mettono a disposizione una semplice
utility per il disassembly, ovvero per estrarre un sorgente (assembly) a
partire dal codice macchina (file hex). Una volta visualizzato l'assembly, con
un'operazione di seleziona tutto e poi copia e incolla dovresti essere in grado
di incollare il sorgente in una documento di testo vuoto, e salvarlo poi con
estensione asm.
Post by stevez
Ho cosultato le indicazioni della Microchip e mi sono un po' perso in mezzo
a mpasm (di cui ho scaricato un anno addietro una release demo originale e
non sono mai riuscito ad usare).
Scaricati MPLAB, è una suite completa di assembler, compilatore C in versione
base e simulatore, utile per il debugging del codice. Se hai l'ADSL è meglio,
vista la dimensione del file di installazione...
Ciao Luigi,
anche a te molti ringraziamenti per le informazioni.
E' vera la tua osservazione sul fatto che l'autore abbia messo a
disposizione un file .hex per modificare il quale occore poi fare un gran
lavoro. Ma tant'e'.
Ora cerchero' MPLAB dalla Microchip, ma una volta ricavato il sorgente
(.asm) con i vari passaggi che mi hai suggerito, poi posso tornare a .hex
con la stessa "suite" ?
Grazie ancora, penso che avro' bisogno di altre dritte ma al momento
opportuno le scrivero' sul NG, le spiegazioni potrebbero servire anche ad
altri
Ciao
Steve
Darwin
2007-06-13 23:10:23 UTC
Permalink
Post by stevez
E' vera la tua osservazione sul fatto che l'autore abbia messo a
disposizione un file .hex per modificare il quale occore poi fare un gran
lavoro. Ma tant'e'.
Ma scusa... hai provato a scrivere all'autore ed a chiedergli i
sorgenti? E' probabile che ti risparmi ore ed ore di tedio a cercare
di capire cosa fa il programma (semprech� l'autore abbia messo qualche
commento). Male che vada non ti risponde o ti dice di no, ma almeno
hai provato.
stevez
2007-06-14 17:33:21 UTC
Permalink
Post by stevez
E' vera la tua osservazione sul fatto che l'autore abbia messo a
disposizione un file .hex per modificare il quale occore poi fare un gran
lavoro. Ma tant'e'.
Ma scusa... hai provato a scrivere all'autore ed a chiedergli i
sorgenti? E' probabile che ti risparmi ore ed ore di tedio a cercare
di capire cosa fa il programma (sempreché l'autore abbia messo qualche
commento). Male che vada non ti risponde o ti dice di no, ma almeno
hai provato.

Ciao,
effettivamente la tua soluzione e' molto pratica e razionale ma non l'ho
provata.
La ragione e' che vorrei capire dove e come girarami in previsione di altre
applicazioni. Non mi piace tutte le volte ricorrere all'autore per mutuare
il suo cervello. Ho scoperto che gente molto preparata talvolta non e' cosi'
incline ad...abbassarsi..al mio livello perche' non potrebbe forse parlare
il suo "linguaggio" credendo di "perdere" del tempo non conoscendo la
preparazione del corrispondente.
Comunque grazie per il tuo cortesissimo e ...sagace ...suggerimento.
Attualmente sono ad MPILAB e sto vedendo come muovermi.
Ciao ancora
Stevez
Luigi C.
2007-06-14 18:28:31 UTC
Permalink
Post by stevez
La ragione e' che vorrei capire dove e come girarami in previsione di altre
applicazioni. Non mi piace tutte le volte ricorrere all'autore per mutuare
il suo cervello. Ho scoperto che gente molto preparata talvolta non e' cosi'
incline ad...abbassarsi..al mio livello perche' non potrebbe forse parlare
il suo "linguaggio" credendo di "perdere" del tempo non conoscendo la
preparazione del corrispondente.
Padrone di fare come ti pare, ma quando si può cercare di evitare la reverse
engineering... perlomeno prova a scrivergli, al massimo non ti risponderà o ti
dirà che non intende distribuire il file asm.
stevez
2007-06-14 23:29:55 UTC
Permalink
Il giorno Thu, 14 Jun 2007 19:33:21 +0200, "stevez"
Post by stevez
La ragione e' che vorrei capire dove e come girarami in previsione di altre
applicazioni. Non mi piace tutte le volte ricorrere all'autore per mutuare
il suo cervello. Ho scoperto che gente molto preparata talvolta non e' cosi'
incline ad...abbassarsi..al mio livello perche' non potrebbe forse parlare
il suo "linguaggio" credendo di "perdere" del tempo non conoscendo la
preparazione del corrispondente.
Padrone di fare come ti pare, ma quando si può cercare di evitare la reverse
engineering... perlomeno prova a scrivergli, al massimo non ti risponderà o ti
dirà che non intende distribuire il file asm.
ok vedro' di percorrere anche la strada dell'autore.
In ogni caso sarebbe molto gradito che, per favore, chi, piu' esperto, mi
desse una diritta per uscire dalla spirale partendo da MPLAB che ho
scaricato.
grazie ancora
Steves
Darwin
2007-06-15 11:17:20 UTC
Permalink
Post by stevez
ok vedro' di percorrere anche la strada dell'autore.
In ogni caso sarebbe molto gradito che, per favore, chi, piu' esperto, mi
desse una diritta per uscire dalla spirale partendo da MPLAB che ho
scaricato.
Contatta l'autore
E' da molto tempo che non uso pi� Windows, ma mi pare di ricordare che
qualche software per programmare i pic, mi pare proprio ICprog,
permetta di visualizzare un disassemblato del file HEX che si sta
caricando. Prova un po' a caricare un file in memoria e vedere se non
c'� un'opzione che ti mostri il disassemblato...
Stefano Martini
2007-06-17 09:07:50 UTC
Permalink
Post by stevez
In ogni caso sarebbe molto gradito che, per favore, chi, piu' esperto, mi
desse una diritta per uscire dalla spirale partendo da MPLAB che ho
scaricato.
Ciao!
Scusa per il ritardo con cui ti scrivo, ero in..... ferie ;).
Dunque: se hai scaricato ed installato MPLAB da Microchip, fai così:
1) Fai copia/incolla del file sorgente da ICProg o altro software che ti
permetta di vedere il sorgente, oppure scaricati un disassemblatore (ne
trovi parecchi cercando su Google, io mi trovo bene con Mikado, ma è
questione di gusti/abitudine ;)).
2) Crei il sorgente dal file ASM (che deve avere l'estensione .asm)
3) Fai le modifiche che vuoi
4) Usi MPASMWIN, presente in MPASM, per compilare il sorgente e
"ritrasformarlo" in .hex
5) Lo scrivi nel PIC come al solito.

Fatto!

Mi accodo comunque a Darwin e Luigi C. per dire che i sorgenti
dall'autore sarebbero MOOOOOOOLLLTOOO preferibili e, tra l'altro,
avresti commenti e label significative, quindi ti eviterebbero molti
casini in fase di modifica!


Ciao!
Stefano!

P.S. Quando rispondi ai post non mettere tutto il messaggio, ma
solamente la parte a cui stai rispondendo se no il tuo post diventa un
po troppo difficile da leggere e seguire, questo, naturalmente, vale per
tutti i post sui newsgroup!

RiCiao!
--
Stefano Martini(Lemming)

Audaces fortuna juvat (Virgilio, Eneide)
Sito web: http://www.lemming.it
stevez
2007-06-20 17:18:24 UTC
Permalink
Post by Stefano Martini
Post by stevez
In ogni caso sarebbe molto gradito che, per favore,
......
Post by Stefano Martini
Ciao!
Scusa per il ritardo con cui ti scrivo, ero in..... ferie ;).
1) Fai copia/incolla del file sorgente da ICProg o altro software che ti
permetta di vedere il sorgente, oppure scaricati un disassemblatore (ne
trovi parecchi cercando su Google, io mi trovo bene con Mikado, ma è
questione di gusti/abitudine ;)).
2) Crei il sorgente dal file ASM (che deve avere l'estensione .asm)
3) Fai le modifiche che vuoi
4) Usi MPASMWIN, presente in MPASM, per compilare il sorgente e
"ritrasformarlo" in .hex
5) Lo scrivi nel PIC come al solito.
Ciao Stefano,
non preoccuparti per i tempi di risposta. Spero abbia fatto delle
buone...ferie.
Permettimi di sintetizzare cio' che ho (o non) capito:

1) parto da un file .hex e lo convero in file sorgente ad es. con Ic-prog o
Mikado.
2) copio e salvo in una cartella il file sorgente come .txt
3) faccio le modifiche necessarie (mi accollo il plus-lavoro del caso) e
risalvo con estensione .asm
4) avvio MPASMWIN, carico il mio file .asm e premo "compile" per avere il
nuovo . hex
5) il resto e' noia...... :-))

Ho fatto tutto cio' per prova con un file .hex sicuramente funzionante senza
introdurre modifiche e nella riconversione .asm ---> .hex mi ha dato
errore....
Dove e' probabile abbia sbagliato?
Concordo con l'obiezione fatta a piu' voci sulla utilita' che l'autore
avrebbe reso mettendo a disposizione il file aggiornato...ma...purtroppo non
e' cosi'.
Grazie ancora della collaborazione. Apparentemente sembra tutto semplice ma
poi...
Ciao
Stevez
Marco
2007-06-21 06:10:24 UTC
Permalink
"stevez" ha scritto
Post by stevez
1) parto da un file .hex e lo convero in file sorgente ad es. con Ic-prog o
Mikado.
2) copio e salvo in una cartella il file sorgente come .txt
Puoi salvare il file già come .asm.
Post by stevez
3) faccio le modifiche necessarie (mi accollo il plus-lavoro del caso) e
risalvo con estensione .asm
4) avvio MPASMWIN, carico il mio file .asm e premo "compile" per avere il
nuovo . hex
5) il resto e' noia...... :-))
Ho fatto tutto cio' per prova con un file .hex sicuramente funzionante senza
introdurre modifiche e nella riconversione .asm ---> .hex mi ha dato
errore....
Se indichi quale è l'errore che hai avuto riportando il testo esatto che dà
MPASMWIN forse si può dire qualcosa.
E magari anche il testo del file .asm (se non è troppo grande) o almeno la
parte che ti sembra legata all'errore.
La frase "mi ha dato errore..." non dice praticamente niente.

Loading...