PROGRAMMARE IN ASSEMBLY – GUIDA BASE (Under construction)

Stato
Discussione chiusa ad ulteriori risposte.

Predator

Utente Storico
11 Giugno 2007
3,203
47
1,268
900
UPDATE 06/10/2008
Prima piccola release: DOWNLOAD GUIDA Rel1

INDICE DEI CONTENUTI


1. Prefazione ................................................. pag 1
2. Introduzione ............................................... pag 1
3. Requisiti .................................................. pag 2
4. Gli strumenti (l’ambiente di sviluppo) ..................... pag 2
5. Stili di programmazione .................................... pag 2

PRATICA

6. Struttura (scheletro) di un programma asm .................. pag 3
7. Installare gli strumenti ................................... pag 6
8. Il nostro primo programma .................................. pag 7
9. Secondo programma: Un MessageBox ........................... pag 10
10. in costruzione...



DATA: 05/10/2008
Ciao a tutti! Visto l'entusiasmo e l'interesse dimostato per la stesura di una guida sulla programmazione assembler, sto scrivendo il documento.
al momento è prematuro pubblicarlo, intanto incollo l'indice di ciò che ho scritto fin ora.
[Edit By Predator]
Sarà mia cura tenere aggiornato questo primo topic. Pubblico solo l'indice ma non ancora il documento per dimostrare che non mi sono dimenticato :D
ma è prematuro pubblicare il materiale. Penso che alleghero' il pdf entro mercoledi, poi informero' di ogni aggiornamento.

Ciauz
Predator
 
RE: PROGRAMMARE IN ASSEMBLY – GUIDA BASE (Under costrucion)

che bella iniziativa...
credo di amarti
sarò che l'ordigno tsar con cui giocavi da piccolo era troppo noioso??? :p
aspetteremo in molti la tua luce in asm!
 
RE: PROGRAMMARE IN ASSEMBLY – GUIDA BASE (Under costrucion)

GRAZIE A DIO ESISTE PREDATOR!!! Ora una guida all'ASM in italiano (se si eccettua Hacknowledge, che tuttavia spiega ASM su UNIX se non erro) esisterà! :hail::hail::hail:
 
RE: PROGRAMMARE IN ASSEMBLY – GUIDA BASE (Under costrucion)

marcio Pradator® non mente mai :p!
 
Bene ragazzi, ho pubblicato proprio l'essenziale, spero di proseguire presto. Intanto cosi' vi introduco a questo potente linguaggio.
Attendo le vostre opinioni per capire se scrivo complicato o se va bene.
in allegato anche un sorgente, seppur banale.

Preddy
 
Eh eh ottimo ^^
Unica cosa...non so da che presupposti parti per il lettore, ma non è meglio dare un'infarinatura teorica prima di incollare qualche riga di codice? Cioè, parlare brevemente dei registri all-purpose, del parallelismo in bit di una CPU, di segmento e offset, di cos'è lo stack, di cos'è un'interruzione e di che tipo di interruzioni ci sono...altrimenti magari si rischia di creare una generazione di futuri programmatori Assembly che vanno avanti di paste di istruzioni mnemoniche senza sapere a cosa servono ^^
 
hehehe Black capisco perfettamente quello che intendi. Allora prenderò un documento che ho visto, molto fatto bene e lo incollero' pari pari citandone l'autore.
Non ho riportato queste nozioni perchè son fin stufo di leggere "guida all'assembler" e poi leggere solo queste info senza programmazione :D
ma di fatto meglio che integro. Sta sera rinnovo :)
 
Beh sul fatto che in giro ci sono guide all'ASM che di fatto sono manuali sull'architettura interna di una CPU Intel o guide ai sistemi di numerazione, ti dò ragione :D
Ma in una guida all'ASM ben fatta un paio di nozioni sui registri e la segmentazione della memoria credo che siano in ogni caso necessarie, se non altro due paroline...altrimenti si rischia solo di far imparare a memoria delle istruzioni...
 
finalmente, nn vedevo l'ora. Per quanto riguarda la parte che verrà copiata/incollata (quella sui registri etc) mi sa che la salterò: ovunque ci sono guide che spiegano solo quello....
 
Balck non ha torto, per ovviare alla cosa al limite faro' un doc a parte, d'integrazione per chi non sa cosa sono i registri, la segmentazione della memoria lo stack, l'esadecimale, ecc...
anzi Black, ricordo male o tu avevi già scritto qualcosa?
 
beh questa guida la dovrei dare alla mia professoressa universitaria di fondamenti di informatica..... che almeno impara un po ^^
 
Predator ha detto:
anzi Black, ricordo male o tu avevi già scritto qualcosa?

Ovvio, su HacKnowledge c'è tutto quello che vuoi, specie nella parte di architettura dei calcolatori ^^
Se vuoi un punto di riferimento sai che è lì.

Whivel ha detto:
idiv funziona su numeri reali?

IDIV funziona sempre e solo su numeri interi. L'unica differenza con DIV è che può operare su numeri con segno...
In realtà però qualsiasi operazione a basso livello può operare anche su numeri a virgola mobile. Tanto per lo standard IEEE 754 i numeri a virgola mobile a basso livello sono rappresentati semplicemente come sequenza binaria di segno+esponente+mantissa...quindi con gli accorgimenti giusti si può anche scrivere una DIV a basso livello che operi su questi numeri, e poi buttare fuori l'output come si vuole.

p.s. Ho letto ora su giobe2000...una IDIV con EDX come registro di appoggio su un 486 richiede 43 cicli di clock???? :omfg: :omfg: :omfg:
 
BlackLight ha detto:
Ovvio, su HacKnowledge c'è tutto quello che vuoi, specie nella parte di architettura dei calcolatori ^^
Se vuoi un punto di riferimento sai che è lì.
Accincegerò dal tuo lavoro molto volentieri :)
grazie
Pred
 
bhe fa conto che la pubblico a pezzi, cosi' invece di aspettare molto tempo potete iniziare subito con l'assembly.
inoltre risulta piu' leggero l'apprendimento rispetto cuccarsi un mattone.
 
Predator ha detto:
BlackLight ha detto:
Ovvio, su HacKnowledge c'è tutto quello che vuoi, specie nella parte di architettura dei calcolatori ^^
Se vuoi un punto di riferimento sai che è lì.
Accincegerò dal tuo lavoro molto volentieri :)
grazie
Pred

non è che intendevi attingerò?
 
BlackLight ha detto:
Whivel ha detto:
idiv funziona su numeri reali?

IDIV funziona sempre e solo su numeri interi. L'unica differenza con DIV è che può operare su numeri con segno...
In realtà però qualsiasi operazione a basso livello può operare anche su numeri a virgola mobile. Tanto per lo standard IEEE 754 i numeri a virgola mobile a basso livello sono rappresentati semplicemente come sequenza binaria di segno+esponente+mantissa...quindi con gli accorgimenti giusti si può anche scrivere una DIV a basso livello che operi su questi numeri, e poi buttare fuori l'output come si vuole.

p.s. Ho letto ora su giobe2000...una IDIV con EDX come registro di appoggio su un 486 richiede 43 cicli di clock???? :omfg: :omfg: :omfg:

ovviamente era per indicare com'era grossa la cavolata della prof....
tra l'altro intero e con la virgola in italiano è contrastante, in matematica lo è ancora di più....

per quanto riguarda il fatto di construirselo a basso livello, rimane sempre un insieme di istruzioni, quindi è diversa come cosa....
a sto punto posso usare in c i long e stampare però numeri con la virgola, usando lo standard (che tra l'altro conosco)...

per il tempo mi sembra una cosa normale 43 cicli di clock.... che ti aspettavi? 1? lol
 
@Pred: a che punto sei con la seconda parte della guida?

p.s. ti ringrazio, la prima parte mi è riuscito capirla (al contrario di tutte le altre guide che stavo leggendo) speriamo bene anche nella seconda.....
 
Ho ricevuto il pm di questa guida quando rispondevo.. grazie mille mastro preddy.. cm sempre naturalmente.. la leggero cn molta attenzione..

PS: mi piacerebbe molto che ci fossero guide del genere sul cartaceo.. da leggere comodamente in corriera insomma!
 
NeoCracker ha detto:
Ho ricevuto il pm di questa guida quando rispondevo.. grazie mille mastro preddy.. cm sempre naturalmente.. la leggero cn molta attenzione..

PS: mi piacerebbe molto che ci fossero guide del genere sul cartaceo.. da leggere comodamente in corriera insomma!

semplice: stampale :asd:
 
Stato
Discussione chiusa ad ulteriori risposte.