Ragazzi, sto leggendo il libro "Hacker", dove si parla della creazione del linguaggio "Assembler" e della sua "semplicità" rispetto al dover altrimenti scrivere 0 e 1, qualcuno mi sa spiegare come funziona a grosse linee ? So che và a stringhe di 3-4 lettere (MOVE, ADD, CALL ecc..) e dà comandi direttamente alla cpu, riesco a creare un mini piccolo eseguibile ? Conosco Windasm32 per editare a quel livello, ho anche appena scaricato PEbrowseDBG, che visualizza l'assembler e l'hex, ma... al momento il cirillico mi è più chiaro :)
(https://www.forumzone.it/public/uploaded/Italia%201/200781213351_disa1.jpg)
L'assembler è un linguaggio di basso livello, cioè esiste una corrispondenza uno a uno fra le istruzioni assembler e le istruzioni in linguaggio macchina.
L'istruzione ADD somma il valore contenuto in un registro al valore contenuto in un altro registro, e successivamente scrive il risultato in un terzo registro
L'istruzione MOVE scrive in un registro un valore che può essere contenuto in un registro oppure specificato dal programmatore
Se vuoi scrivere un programma l'assembler è sicuramente la scelta meno indicata, a meno che tu non voglia farlo girare su un 486, perchè sarebbe un lavoro lungo e complesso; se sei proprio deciso dai un'occhiata a questa guida
http://www.manuali.it/manuali-guide/Informatica-e-Internet/Programmazione/Assembler/Corso-italiano-di-Assembler-x86/330.htm
Giordy il libro hacker è anche abbastanza vecchio, credo che ci siano 5 edizioni dopo di lui, nell'ultima immagino che consiglino il C per programmare, è di alto livello e più comprensibile.
CitazioneGiordy il libro hacker è anche abbastanza vecchio, credo che ci siano 5 edizioni dopo di lui, nell'ultima immagino che consiglino il C per programmare, è di alto livello e più comprensibile.
confermo: il c è il linguaggio ad alto livello più vicino alla macchina e, a meno di nn dover arrivare ad avere performance particolari, l'assembler è sconsigliabile ;) anche perchè conoscendo bene il compilatore è molto semplice forzarlo per obbligarlo a fare scelte per le prestazioni :)
inoltre per l'assembler devi conoscere moooolto bene su cosa lo fai girare, ossia su quale processore... ti dico che in università ti fanno usare il simulatore SPIM, che emula il comportamente dei MIPS (un processore RISC per altro abbastanza datato)
se vuoi dargli 1 occhio:
http://it.wikipedia.org/wiki/Architettura_MIPS#Programmazione_e_emulatori
e
http://logos.cs.uic.edu/366/notes/MIPS%20Quick%20Tutorial.htm
:D
Scusate l'assenza, ma l'adsl sapete come è messo dalle mie parti.....
A me piacerebbe imparare un pò la base della programmazione, poter editare un'eseguibile quasi come mi pare, dare al pc un boost.... insomma, capire perchè ci impiega tot tempo a fare questo, quello ecc..
Hacker l'ho trovato insieme ad una rivista un paio di anni fà, questo parla dell'etica hacker, di un gruppo di ragazzi che partono dal Mit e cominciano a programmare sui vecchi pc di allora
che intendi per dare al pc 1 boost??
Che ne so, sapere perchè i programmi hanno delle pause, fare in modo, se possibile, di accelerare notevolmente il caricamento, scoprire i cheat dei giochi, ecc..
Comunque, mi sembrava nettamente + semplice la cosa. Eppoi, l'assembler genera EXE ??
CitazioneChe ne so, sapere perchè i programmi hanno delle pause, fare in modo, se possibile, di accelerare notevolmente il caricamento, scoprire i cheat dei giochi, ecc..
Comunque, mi sembrava nettamente + semplice la cosa. Eppoi, l'assembler genera EXE ??
no l'exe serve per l'so. il kernel dell'so ha la prerogativa di accedere all'hw e da win nt in su lo è in modo praticamente esclusivo (tanto è vero che all'inizio nt nn aveva nemmeno la possibilità di far girare i giochi dato che con win9x l'accesso all'hw era permesso)
Ostia..... praticamente, se voglio comandare direttamente la cpu tramite tastiera, che devo usare ?? Tipo: voglio dirgli ADD 6 + 3 (~)
nn puoi ;):(
perchè anche scrivendolo e facendolo compilare in linguaggio macchina, come fai a darlo in pasto alla cpu? t serve 1 sistema operativo...
Capisco.......