Assembler i fondamenti di
Mi sono imbattuto in alcuni programmini scritti in assembler con i relativi codici. So che l'assembler è un linguaggio potente ma che è parecchio complicato e ha poca portabilità, inteso per uno che non ne sia esperto.
Allora volevo togliermi alcune curiosità:
-come funzionano le variabili in assembler, l'utilizzo della memoria e le operazioni?
-in che viene usato attualmente l'assembler?
-come si compila del codice in assembler?
probabile che alla prima non si possa rispondere in due righe, quindi anche un link è ben visto.
Ciao Ciao grazie a tutti!
Allora volevo togliermi alcune curiosità:
-come funzionano le variabili in assembler, l'utilizzo della memoria e le operazioni?
-in che viene usato attualmente l'assembler?
-come si compila del codice in assembler?
probabile che alla prima non si possa rispondere in due righe, quindi anche un link è ben visto.

Ciao Ciao grazie a tutti!

Risposte
Il sito di Giobe è ottimo per iniziare a comprendere le istruzioni dei vecchi x86, poi sei vuoi passare a studiare le istruzioni dei 32bit www.masm32.com dove ci sono dei tutorial esaustivi. Comunque essendo un linguaggio di basso livello, cioè più vicino alla macchina, è utilizzato prevalentemente per programmare le le periferiche, finanche le centraline delle macchine ad iniezione elettronica sono programmate in assembler...
"carlo23":
-come si compila del codice in assembler?
per quello c'è un ottimo assemblatore della borland ( mi sfugge il nome )
"carlo23":
come si compila del codice in assembler?
Se usi Linux il comando è
gcc -o nome_programma codice_assembly.s
Oppure se vuoi usare l'assembler e il linker separatamente
as -o file_oggetto.o codice_assembly.s ld -o nome_programma file_oggetto.o
Tra l'altro con il gcc puoi anche "vedere" il codice assembly che esso genera a partire da un qualsiasi programma C con il comando
gcc -S hello_world.c
Il codice assembly viene in questo caso salvato in hello_world.s
"Diravan":
[quote="carlo23"]
-come si compila del codice in assembler?
per quello c'è un ottimo assemblatore della borland ( mi sfugge il nome )[/quote]
E' il TASM!
"leonardo":
[quote="Diravan"][quote="carlo23"]
-come si compila del codice in assembler?
per quello c'è un ottimo assemblatore della borland ( mi sfugge il nome )[/quote]
E' il TASM![/quote]
grazie sono un po in crisi...
p.s. l'ho usato per un anno...
qualche cosina del kernel di linux e' ancora in assembly se non l'hanno riscritto nelle ultime del 2.6. A livello di applicazioni "commerciali" credo che venga usato nella computer grafica soprattutto nei videogiochi che sono in real time, ma solo nelle procedure critiche... oppure nelle console portatili (anche se ci sono i kit). comunque l'assembly come linguaggio e' molto semplice, il problema e' che devi conoscere perfettamente l'architettura del processore e che i programmi diventano illeggibili dopo poco tempo, a meno di estensivi commenti. Ti consiglio di dare un'occhiata qui: http://webster.cs.ucr.edu/
Conoscete il modo di scrivere programmi in asm, dal prompt dos in questo modo:
copy con nomeprogramma
?
Dove si può trovare una lista delle combinazioni per i vari comandi, push, mov etc?
copy con nomeprogramma
?
Dove si può trovare una lista delle combinazioni per i vari comandi, push, mov etc?
"Crook":
Conoscete il modo di scrivere programmi in asm, dal prompt dos in questo modo:
copy con nomeprogramma
?
Masochista!


Dove si può trovare una lista delle combinazioni per i vari comandi, push, mov etc?
Qui forse trovi tutto e di più

grazie stan molto utile anche per me... tiravo avanti con quelle che mi ha dato il mio prof ma mazza quel tomo da 750 pagine
è molto più completo



Ti do' un altro piccolo suggerimento :
Dopo che hai imparato un minimo di assembler,
puoi integrarlo in Borland Delphy,
tramite l'istruzione ASM.
Dopodiché puoi vedere tramite il debug integrato l'esecuzione passo-passo e le modifiche che vengono apportate ai vari registri di sistema. Può essere molto istruttivo.
Altrimenti esistono dei debugger che fanno ciò direttamente sui programmi assembler, ma non mi viene in mente quali sono. Sono molti anni che non faccio uso di queste cose.
Buon divertimento.
Dopo che hai imparato un minimo di assembler,
puoi integrarlo in Borland Delphy,
tramite l'istruzione ASM.
Dopodiché puoi vedere tramite il debug integrato l'esecuzione passo-passo e le modifiche che vengono apportate ai vari registri di sistema. Può essere molto istruttivo.
Altrimenti esistono dei debugger che fanno ciò direttamente sui programmi assembler, ma non mi viene in mente quali sono. Sono molti anni che non faccio uso di queste cose.
Buon divertimento.

mi pare che il macro assembler (MASM) metta a disposizione un programma assemblatore, un linker, e un debugger. Lo usavo un po' di anni fa... (5/6), spero che il mio consiglio non sia preistorico. Oppure puoi integrare il codice asm in un linguaggio di livello più alto come il c.... a te la scelta