Giobe®2000
Pagina creata il 15/07/2009 [5406 giorni fa]
Tutorial Assembly by Giobe®2000
Sezione Assembler - Home Page Sezione Assembler Prima di partire ... [2 di 51] 
1. Leggi subito! 2. Per chi parte da zero 3. Cos'è 4. Come si installa 5. Come si usa 6. Apri shell DOS dal Sito
7. Adatta shell DOS 8. Lancia EXE on-line 9. Scarica ASM 10. Caratteri strani 11. Prima compilazione 12. Download
1. Prima di partire devi sapere che ...
Scopri se questo sito è adatto per soddisfare le tue aspettative

Da molto tempo questo magico sito è un punto di riferimento (uno dei pochi in italiano) per lo studio e la programmazione in Assembly; lo stile della prosa, l'affidabilità dei contenuti e la ricca e robusta dotazione di esempi originali (sorgenti ASM) rende piuttosto improbabile ogni tentativo di appropriazione indebita.

Se stai leggendo queste righe vuol dire che hai deciso di imparare questa nobile arte, ma prima di decidere se è il caso di affrontare questa avventura su queste pagine ho il dovere di avvisarti di una cosa di importanza fondamentale, per sgombrare i dubbi sulle tue aspettative ed evitare di farti perdere tempo: LEGGI CON ATTENZIONE LE PROSSIME CONSIDERAZONI.

Attenzione ! E' importante sottolineare fin d'ora che, per una scelta didattica ben precisa, il mio sito si occupa (per ora) della programmazione Assembly di Base.

L'Assembly che imparerai è l'unico che ti consente di capire il funzionamento della CPU e di far pratica con l'utilizzo diretto dei suoi registri e delle periferiche (tastiera, monitor, dischi, porte di I/O, ecc.) da essa controllate; sebbene sia didatticamente conveniente riferirsi al set d'istruzioni e all'architettura del patriarca a 16 bit (8086) con questo Assembly sarà possibile programmare anche i processori a 32 bit della famiglia 80x86 attualmente ancora presenti in molti dei nostri PC.

Di sicuro questo Assembly è l'ideale per imparare le tecniche e i segreti della programmazione a basso livello e per consentire l’intervento diretto, in modo immediato e veloce, su ogni oggetto presente sulla scheda madre e sui dispositivi che con essa danno forma al tuo computer (sistemi operativi permettendolo..).

Per consentire di trarre vantaggio da questo presupposto l'Assembly chi ti offro coinvolgerà le primitive e le strutture del DOS (un sistema operativo a 16 bit, come Windows 3.x): sebbene la cosa possa sembrare anacronistica questa scelta (aggiunta alla possibilità di fruire delle primitive del BIOS) è del tutto legittima (straordinariamente efficace e relativamente semplice da apprendere) e, soprattutto, garantita e supportata anche da Windows (un sistema operativo a 32 bit) fin dalle prime apparizioni (Windows 9x e Windows ME) in virtù della presenza della Virtual DOS Machine (VDM).

Ogni volta che si fa partire un eseguibile a 16 bit (come quelli che noi progetteremo in ogni dettaglio) oppure se si esegue l'interprete dei comandi COMMAND o CMD, la macchina virtuale DOS creerà un ambiente (shell Dos) nel quale esso girerà esattamente come se fosse ospitato da un reale sistema operativo DOS, emulandone le caratteristiche. Questo vale anche per Windows 2000, Windows XP e Windows Vista32, sotto i quali si potrà godere in pieno della struttura offerta dal mio Nuovo Ambiente Assembler e collaudare ogni progetto proposto dal mio sito nella sezione dedicata all'Assembly, pur, talvolta, con qualche artificio (device driver) per superare la loro arrogante ingerenza sull'accesso diretto alla memoria o ai dispositivi di Input/Output.

Leggi con ATTENZIONE!! Con le versioni recenti (per esempio Windows XP64 e Windows Vista64) il Nuovo Ambiente Assembler invece non funzionerà più: questi sistemi operativi, destinati alle nuove architetture a 64 bit, non includono più la NTVDM e quindi nessuna applicazione MS-DOS (o Windows a 16-bit) potrà essere eseguita.

Ai possessori di queste versioni che desiderano comunque fruire dei miei servizi rimangono comunque almeno 2 vie alternative:

punto   partizionare il proprio disco fisso e dedicare una partizione anche a Windows XP (e/o addirittura a Windows ME)
punto   installare un emulatore, come DOSBox (gratuito e molto efficiente) o come Microsoft Virtual PC o altro.., e imparare ad utilizzarlo

linea

Suggerimento MA se desideri creare applicazioni di "tipo Windows" (come quelle che vedi girare sul tuo monitor) o se ti vuoi dedicare al Reversing di questi eseguibili (se non addirittura cimentarti con Cracking o in attività Hacking), qui stai perdendo il tuo tempo !!! 

Per poter realizzare applicativi di questo tipo devi utilizzare l'Assembly Win32, un potente linguaggio di programmazione strutturato come uno ad alto livello, in grado di sfruttare a pieno le potenzialità indiscusse di Windows a 32 bit rappresentate da una grandissima collezione di potenti ed efficienti funzioni, dette API (Application Programming Interface), in parte integrate dentro lo stesso Windows, del tutto diverse da quelle, pur importanti, del povero DOS.

Le API sono raccolte in particolari librerie collegate dinamicamente al programma, dette appunto DLL (Dynamic Linked Libraries), a loro volta disponibili in notevole quantità e, all'occasione, anche progettabili e personalizzabili; il loro utilizzo garantisce ai tuoi lavori anche una GUI (Graphic User Interface, Interfaccia Grafica Utente) del tutto simile a quelle disponibili in ogni applicativo Windows (e assolutamente impensabile in ambiente DOS).

Basta CPU, basta registri, basta hardware, basta funzioni DOS o BIOS, basta chiamate di interrupt (INT) software!! Solo oggetti pronti, preconfezionati, funzionali, immediatamente disponibili.
      Basta pane e salame e marzemino .. E' tempo di caviale e champagne!!

Con l'Assembly Win32 potrai realizzare progetti vendibili ed esteticamente gradevoli, praticamente senza fatica, disponendo di tecniche di gestione della memoria e dell'hardware trasparenti (questo fatto è la sua potenza ma anche il suo limite, da certi punti di vista...) e potenti.

linea

 In conclusione ci sono 2 tipi di Assembly: sono due pianeti completamente diversi: il primo dà il senso del potere e del creatore, mentre il secondo è un lavoro da ragioniere, dignitoso ma freddo, efficiente e opportunista.

punto   l'Assembly di base si basa sulla programmazione DOS/BIOS, decisamente più creativa e formante di quella Win32, e consente un rapporto diretto con l'hardware del computer, a partire da quello del processore; ma in questo ambiente ogni oggetto (finestra, menu, ecc.) e ogni problema (lettura tastiera, scrittura a video, trattamento dei dati, ecc.) deve essere creato da zero e l'aspetto dell'interfaccia utente sarà sempre piuttosto spartano, in Modo Testo (cioè con i tipici caratteri 80x25 in una finestra DOS) o in Grafica limitata alle basse risoluzioni (con qualche eccezione ..).
punto   l'Assembly Win32 si basa sulla programmazione Windows32bit, di certo più performante e gratificante, almeno dal punto di vista estetico: tutto è pronto per essere utilizzato con il massimo profitto in un ambiente grafico di altissima risoluzione; basta solo la determinazione di imparare il modo migliore per organizzare le strutture disponibili (che sono tante!!) e non è necessario sapere come funziona il computer: se per te questo è irrilevante e sei uno che bada al sodo questa è la tua via!!

A mio modestissimo avviso, non è comunque ragionevole arrivare al secondo senza essere passati per il primo; l'esperienza con l'Assembly di base è fondamentale per conoscere con tranquillità gli strumenti necessari e per farsi la mentalità logica indispensabile per affrontare con autonomia gli ambienti più complessi di Win32.

L’evoluzione da Assembly di base a Assembly Win32 è un passo naturale e scontato che i miei amati lettori provvedono a compiere quando si sono fatti le ossa e sentono che quello che hanno letto fino a ieri non basta più; da quel momento non hanno più bisogno del Maestro e sono in grado di compiere da soli i passi necessari.

Potrà capitarti (come è capitato a me) di sentire qualche borioso benpensante che raglia al cielo il suo disprezzo per la mia credibilità e per il nostro lavoro, pontificandone l'inutilità e giudicandolo vecchio e superato dal tempo. Arrogarsi la presunzione di essere detentore della verità è cosa ahimè frequente, ai giorni nostri: è un diritto legittimo, ma molto spesso succede che questa gente vive di luce riflessa, essendo priva del carisma, della sensibilità e della competenza necessaria per essere faro per qualcuno.

Non farti dunque intimorire e fai una scelta ponderata e serena; del resto gli argomenti trattati sono gli stessi pianificati nei corsi di Architettura dei Calcolatori di molti Atenei (con buona pace dei benpensanti ...) e non di rado ho potuto godere del generoso apprezzamento sia dei docenti che degli studenti di questi e di altri corsi.

Se decidi di imbarcarti sul mio battello basta cliccare sulla freccia a destra (qui sotto) o tornare alla pagina principale e scegliere una delle voci dell'elenco: di certo quello che troverai nel mio sito non ha prezzo: è il frutto di una esperienza consumata sul campo e verificata con il piacere della conquista e dell'avventura.

Scarica il documento PDF relativo a questo argomento
[Scaricato 3662 volte]
Torna alla pagina principale dell'Ambiente Assembler
Pagina Precedente Assembler Pagina Successiva Prima di partire ...   VERIFICA la validità della pagina!! Torna alla Home della Sezione Assembler
2 di  51
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
NUOVO
AMBIENTE
ASSEMBLER
NB: Leggi subito!!|Per chi parte da zero|Cos'è l'Ambiente Assembler
Come si installa l'Ambiente|Come si usa l'Ambiente [Guida Utente]
Come aprire una finestra DOS dal Sito|Come si ottimizza una finestra DOS
Come lanciare eseguibili on-line|Come salvare i sorgenti ASM da Web
Caratteri "strani" nei sorgenti ASM|Guida alla prima compilazione
Area di Download e considerazioni conclusive
Accedi al TUTORIAL ASSEMBLY »  Prefazione|CAP 1|CAP 2|Schede
Accedi alla Palestra Apprendisti|Accedi alla Palestra Esperti
Analizza le Procedure di Giobe.LIB|Analizza le Macrositruzioni di Giobe.MAC
Risorse Software »  Area Comunicazione BIOS|Funzioni BIOS|Funzioni DOS
Risorse Hardware »  Raccolta Indirizzi Base|Registri delle Periferiche|Progetti ASM
Risorse Generali »  Download Manuali ASM|Info|Indice GENERALE
Home
Pascal|Manuali|Tabelle|Schede|Pubblicazioni
Tutorial Assembly|Palestra Assembler
Nuovo Ambiente Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
Copyright ® 2001-2012 -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati