Newsgroup: it.comp.lang.c
Titolo: assembly guida

Ciao a tutti
all'uni ho studiato java e C prima (questo non fa di me un esperto, ma 
solo uno studente che ha sostenuto due esami nei suddetti linguaggi)
Nel privato mi diletto con php con il quale riesco a concretizzare i 
miei desideri, sviluppando cose piï¿œ o meno utili.
Ogni tanto mi ritrovo sotto il naso questo assembly, mi incuriosice 
molto, mi aiuterebbe a comprenedere molto melgio la programmazione anche 
ad alto livello, vorrei ..vorrei... impararne un pï¿œ
ma non sono stato capace di trovare in rete una guida (magari in 
italiano) che fosse realmente per principianti...
C'e'Giobbe2000 ma ï¿œ tanto ricco di info quanto incasinato.
Consigli?
Piattaforma Intel (p.s. alla fine l'unico testo interessante per adesso 
ï¿œ una guida sull'assembly per c64....forse leggo quella)
grazie!

 che fosse realmente per principianti...
Quale assembly? Per quale cpu o micro?
Perch� mica ce ne � uno solo.
E' strettamente legato al codice macchina indi alla cpu o al microcontroller 
su cui poi il programma girer�.
Cmq, se vuoi cominciare a impare a programmare in assembly ti suggerisco di 
scegliere una cpu o meglio ancora un micro molto semplice.
Quello del C64, che usa un 6502, oramai � roba da museo, non avresti neanche 
dove far andare i programmi se non in un simulatore.
Che poi quella di usare un simulatore non sarebbe neanche una cattiva idea.
Cmq... ci sono piattaforme di sviluppo per micro che ti forniscono tutto, io 
uso quella della microchip, MPlab IDE,  per i miei lavori e la conosco bene.
Con quella puoi imparare a programmare i loro microcontroller.
..

 grazie!
A grandi linee l'assembler ha una corrispondenza quasi uno-a-uno con
il linguaggio macchina, quindi dipende da che processore/
microcontrollore devi programmare... Se ti interessano gli x86 ti
potrei consigliare il "the art of assembly language", un bel mattone
molto datato, ma IMO preziosissimo ;-)
Se ti interessano altri tipi di micro scegline qualcuno vecchio con
poche poche istruzioni... chessò, uno Z80 o un PIC a 8bit come il
famosissimo 16F84 :-)
Ciao!

 Ciao!
grazie a tutti!

 > molto datato, ma IMO preziosissimo ;-)
Affatto, la seconda edizione e' del 2009, ma io non lo consiglierei
poiche' non lavora su una vera CPU ma su una sorta di simulatore.
Guarda che la rete - mi riferisco all'autore del thread - e' piena di
materiale, basta cercare; un buon inizio tuttovia potrebbe essere il
libro di Paul carter, c'e' anche in Italiano.
cerca Assembly tutorial paul carter.
L'anno scorso e' uscito un eccellente manuale in inglese, in realta'
una nuova edizione, Assembly language step by step (Linux), lo trovi su
amazon.
Poi cerca insomma, ciao
P.S. L'assembly e' una cosa l'assembler e' un'altra ...


Ciao!
Eh, ho avuto la passione per l'assembly per tanto tempo, ti dï¿œ una lista
di libri molto usati e utili.
Come ti ha anche detto luka, Paul Carter ha scritto una guida all'assembly
fatta molto bene, ti insegna anche a interfacciare C e Assembly per x86.
Usa l'Assembler NASM (disponibile sia per Windows che Linux):
il PDF in italiano ï¿œ qui:
 
http://www.drpaulcarter.com/pcasm/pcasm-book-italian-pdf.zip
  ma la versione in inglese ï¿œ piï¿œ aggiornata:
 
http://www.drpaulcarter.com/pcasm/pcasm-book-pdf.zip
Un informatico di nome Randall Hyde ha implementato un assembly
"ad alto livello" chiamato HLA, ma anche se non sei interessato a
impararlo consulta lo stesso le sue guide perchï¿œ spiega le architet-
ture x86 in maniera impeccabile:
http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/index.html
Lo stesso autore ha scritto i seguenti libri, fatti molto bene, il
primo ti era giï¿œ stato consigliato da FtM:
http://www.amazon.com/Art-Assembly-Language-Randall-Hyde/dp/1593272073/ref=dp_ob_title_bk
http://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038/ref=pd_bxgy_b_img_b
http://www.amazon.com/Write-Great-Code-Low-Level-High-Level/dp/1593270658/ref=pd_bxgy_b_img_b
Questo ï¿œ il libro che ho io, fantastico, usa il MASM perï¿œ, che ï¿œ
disponibile solo su Windows:
http://www.amazon.com/Assembly-Language-x86-Processors-6th/dp/013602212X/ref=ntt_at_ep_dpi_1
Per l'Assembler GNU (Gas) c'ï¿œ questo libro molto buono:
http://www.amazon.com/Professional-Assembly-Language-Programmer/dp/0764579010/ref=sr_1_4?s=books&ie=UTF8&qid=1287482259&sr=1-4
come anche quello che ti ha giï¿œ consigliato luka, te lo linko lo stesso:
http://www.amazon.com/Assembly-Language-Step---Step-Programming/dp/0470497025/ref=sr_1_3?s=books&ie=UTF8&qid=1287482259&sr=1-3
Quest'altro ï¿œ un libro altrettanto buono che ti spiga il NASM su Linux:
http://www.amazon.com/Guide-Assembly-Language-Programming-Linux/dp/0387258973/ref=sr_1_2?s=books&ie=UTF8&qid=1287482259&sr=1-2
SITI UTILI:
http://www.masm32.com/
http://www.nasm.us/
http://www.tortall.net/projects/yasm/
http://www.agner.org/optimize/
 [qui trovi anche altri link utili]
-- 
Non puoi insegnare qualcosa ad un uomo. You cannot teach a man anything.
Lo puoi solo aiutare   --  Galileo  Galilei  --   You can only help him
a scoprirla dentro di sï¿œ.                        discover it in himself.
Vincenzo Mercuri

 uso quella della microchip, MPlab IDE,  per i miei lavori e la conosco bene.
Dici che (giustamente) il 6502 e' roba da museo e poi mi usi un
PIC...mah...
Ciao Jack

PIC...mah...
Mah cosa? In casa avr� almeno un paio di centinaia di 16f84 e 16f628 e 
parenti vari reduci dagli albori della paytv satellitare.
Quando li avr� consumati tutti passer� a modelli pi�... recenti.
.. 


Questa l'appoggio: i PIC sono bestioline super-resistenti e si montano
con pochissima fatica. Il fatto che con 5€ in più ci si compra un
processore cinquanta volte più potente è irrilevante quando pensi che
per avere uno stupido circuitino bastano altre due resistenze e un po'
di cavo - nemmeno serve stabilizzare la tensione! :-D
Ciao!

 di cavo - nemmeno serve stabilizzare la tensione! :-D
Eheh. vero. Per me ï¿½ un "argomento scottante", per il mio esame di
Elettronica Industriale dovevamo fare un progetto programmando un
PIC18F452, ambiente mplab, assembly e via dicendo. In quanto alla
programmzione tutto bene, ma il vizio che il mio collega aveva di
stagnare qualsiasi cosa, sospeso in aria, mi procurï¿½ una "leggerissima
bruciatura". Strano ma vero, nessun segno, esame superato alla grande,
ma non salderï¿½ piï¿½ niente, neanche se mi prega una resistenza in persona
...scherzo. Perï¿½ ricordo che era interessante l'implementazione in
assembly, forse piï¿½ facile di quanto sarebbe stato in C.
-- 
Non puoi insegnare qualcosa ad un uomo. You cannot teach a man anything.
Lo puoi solo aiutare   --  Galileo  Galilei  --   You can only help him
a scoprirla dentro di sï¿½.                        discover it in himself.
Vincenzo Mercuri

č una guida sull'assembly per c64....forse leggo quella)
Direi che č meglio usare processori piů evoluti.
Oltre a quanto ti hanno detto, mi permetto di consigliarti di dare un occhiata
ad una famiglia di processori che si programma bene in assembler, gli Atmel AVR.
Puoi scaricare diverse info sul sito
http://www.atmel.com/dyn/products/devices.asp?family_id=607
In particolare AVRstudio integra assembler e simulatore e si puň usare anche con
il GCC GNU, giusto per non essere troppo ot.
http://atmel.com/dyn/products/tools_card.asp?tool_id=2725
In pratica dopo aver assemblato puoi vedere il programma girare e vedere come
variano i regisatri e le porte di IO, tutto molto semplice e intuitivo.
Io i µControllers piů piccoli come i TinyAVR li programmo in assembler e mi
diverto molto a farlo, con 32 registri nella CPU ed un set di oltre 140
istruzioni puoi sbizzarrirti con la fantasia,
Oltretutto non ci sono nemmeno limitazioni come lo stack hardware o il salto
paginato che hanno altri µC come i pic, che hanno anche un set di istruzioni piů
scarno e solo un paio di registri nella cpu.
Qui trovi diverse routine, fino alla Float a 128bit (la divisione funziona)
http://avr-asm.tripod.com/
http://avr.15.forumer.com/a/math-routines-25/
Se poi hai dei quesiti specifici sui µControllers ci sono gruppi dedicati come 
  it.hobby.elettronica.digitale  dove puoi trovare gente competente.
--
ciao
  Stefano