ASM Guida Assembler (asm)

Stato
Discussione chiusa ad ulteriori risposte.

Cat Cut

Utente Electrum
18 Luglio 2012
193
18
60
124
Ultima modifica da un moderatore:
Salve community
Oggi voglio postare questa guida

Allora incominciamo subito:
-----------------------------------------
|INDICE: |
-----------------------------------------
| 1) Aprite es1.asm e leggete! |
| 2) Commenti al es1.asm |
| 3) es2.asm con spiegazioni |
-----------------------------------------


Commenti al es1.asm


Cosa dire?




Label.


Innanzi tutto che esistono, come in molto altri linguaggi le label.
Le label qui si fanno grazie ai 2 punti.
Così:


PIPPO:
...
...
...


Semplice!


Ricordate che il programma non funziona se usate Label con nomi riservati cioè con
parole che sono comandi. Questo è un grave errore. Per evitare questo semplicemente
usate parole italiane.
Dato che le label si usano molto spesso, e dato che i comandi possibili sono tanti,
io vi consiglio di usare spesso il carattere _ . Questo carattere è usato spesso
per le label dai programmatori seri. Ma non mettetelo come primo carattere.
ESEMPIO:


ciao_bello:




MODEL


Model è un comando che regola prevalentemente il tipo di programma (nel nostro caso
MASM) Non in tutti i programmi è necessario come non in tutti i programmi funziona
così.


Questo comando funziona così:
-TINY Che vuol dire fai diventare il futuro programma un .COM .Queso è perchè con
l'opzione TINY regolo i segmenti che verranno utilizzati all'interno dello stesso
programma.


-C regolo il tipo di linguaggio. Questo è necessario per certe operazioni. Perchè?
Semplicemente perché certe operazioni vanno regolate fuori dall'assembler. Se vi
sentite sicuri sul C mettere C (come io ho fatto). Se preferite PASCAL mettete
questo. Non cambia nulla in questo programma ma magari in altri di più.
Non posso farvi esempi sull'uso di questa istruzione perchè la sorgente file_1.asm
non ne fa uso. Posso solo dirvi che l'ultimo comando .END sarebbe diventato, se
in PASCAL, END. . Nulla di più.


-NEARSTACK vuol dire che l'intero segmento che il programma utilizzarà sarà preso
dal programma stesso.


-.STACK serve ad evitare errori durante la compilazione. Ai fini del programma non
serve


-.286 serve per dire al compilatore che stiamo usando comandi impostati nel 8088 fino
al 286.Avrei potuto utilizzare tranquillamente quelle dello 8088 senza mettere questo
comando dato che comunque tutti questi comandi funzionano anche nelle macchine
successive.


-.DATA serve a dire le variabili che utilizzarò nel programma


- e infine le direttive .CODE e .STARTUP indicano al compilatore che le istruzioni
iniziano a partire da .CODE e che l'esecuzione del programma deve iniziare a
partire dalla direttiva .STARTUP.


-.EXIT Con questo comando il compilatore inserisce automaticamente i comando:


MOV AH,4Ch
INT 21h


e quindi termina il programma. Questi 2 comandi li abbiamo già visti quindi non
mi soffermo.




XOR DX,DX


Come vi ho detto ora parliamo di questo comando che vi sembrerà inutile.
Questo è posto dopo la label P3:. Se lo eliminate il comando si blocca e dovete
riavviare il computer.
Voi sapete che l'istruzione DIV BX serve a dividere il registro DX:AX e il registro
BX inserendo il resto in DX. Ma bisogna prima azzerare DX altrimenti si blocca il
tutto.
Il registro DX in effetti puo' contenere valori diversi da zero, ma...... al MOMENTO
di eseguire l'istruzione DIV , questa deve azzerare DX, quindi DX DEVE avere un
valore tale che l'istruzione DIV azzeri DX e questo possa contenere il resto.




_________________ Fine del commento del primo programma! _________________




ACCEDERE AD UN DISCHETTO E FORMATTARLO ACCURATAMENTE


Spesso quando si fa una formattazione questa è fatta in modo approssimativo.
Infatti molte volte virus calcellati sono ripartiti tranquillamente provocando
ancora danni.
In questa sezione impareremo ad accedere al disco a livello fisico ( e non logico
come di fatto vi accede il famoso FORMAT A: quando il dischetto e' gia' formattato
a basso livello, e cioe' nella quasi totalita' dei casi, ivi compresi i dischetti
nuovi appena spacchettati).


Quindi facciamo un piano di lavoro:


L'unica cosa che sappiamo fare è usare interrupt del BIOS e quindi useremo queste.
Più avanti, se avrò voglia vi farò riscriverò lo stesso programma, ma stavolta
accedendo direttamente alle porte di I/O, ed escludendo completamente l'ausilio del
BIOS.
Per ora saremo gia' a un discreto grado di comprensione se utilizzeremo le funzioni
del BIOS e ne vedremo i risultati, cambiando addirittura il carattere di FILL-UP
(cioè il carattere che indica che lo spazio e libero), e mettendo perche' no! la prima
lettera di Gaetano, cioe' 1,44 Milioni di G al posto di ÷ (codice ASCII 246) che
e' il carattere di FILL-UP standard per i dischetti. Alla fine bastera' verificare
qualche centinaio di settori (specialmente nei primi cilindri (o le prime testine) e
avremo la garanzia che le routines del BIOS hanno effettivamente formattato a basso
livello il nostro Floppy-Disk.


Quindi faremo:


1) Procuriamoci le informazioni che ci servono, cioè il driver e altre cosucce.


2) Chiediamo conferma all'utente per la formattazione. Lo facciamo attraverso la
richiesta di Y. Se ciò non accade si esce.


3) Proiettiamo una mascherina dello stato di aggiornamento della formattazione.
(La formattazione a basso livello e' abbastanza lunga e un utente impaziente
potrebbe spegnere il computer o attivare un CTRL+ALT+CANC.)


4) Iniziamo la formattazione traccia per traccia (dopo aver definito ogni settore),
e verifichiamo se e' stata eseguita regolarmente. In caso di errore (ripetuto
oltre le 4 volte) diamo il messaggio di errore e il codice corrispondente.


5) Alla fine, prima di saltare alla nostra funzione DISK_VIEW inseriamo nel primo
settore assoluto il BPB (il Blocco dei Parametri del BIOS) che ci consentira' di
potervi accedere (dal BIOS) e anche di poter continuare facilmente a scrivere a
livello fisico (settore per settore) qualunque dato vogliamo.


6) Rendiamo semplice l'uscita dal programma allorche' l'utente preme il tasto ESC
(cod. ASCII 1Bh).

Con questo la guida è conclusa ciao a tutti :D

Credits Twister
:asd:
 
No :nono:
Conosco solo vbs però postare non fa male a nessuno :omfg:
Scusa se te lo chiedo perchè mi fai domande che non c'entrano col topic ? :\

- - - Updated - - -

Mr simpatia ti ho fatto una domanda è consuetudine rispondere grande programmatore :\
 
No :nono:
Conosco solo vbs però postare non fa male a nessuno :omfg:
Scusa se te lo chiedo perchè mi fai domande che non c'entrano col topic ? :\

- - - Updated - - -

Mr simpatia ti ho fatto una domanda è consuetudine rispondere grande programmatore :\

Inizio col dire che dovresti anche capire che non tutti non fanno un cavolo dalla mattina alla sera, non puoi pretendere subito una risposta.
2° Diversamente da come la pensi tu, trovo inutile postare senza neanche sapere ciò che si posta, considerando che sicuramente dal commento di predator, è tutto completamente sbagliato :omfg:
3° Evita di sfidare predator perchè cadi male :asd:
 
  • Mi piace
Reazioni: Impostore Deluxe
Inizio col dire che dovresti anche capire che non tutti non fanno un cavolo dalla mattina alla sera, non puoi pretendere subito una risposta.
2° Diversamente da come la pensi tu, trovo inutile postare senza neanche sapere ciò che si posta, considerando che sicuramente dal commento di predator, è tutto completamente sbagliato :omfg:
3° Evita di sfidare predator perchè cadi male :asd:
Ruffiano :\
 
Ultima modifica:
No :nono:
Conosco solo vbs però postare non fa male a nessuno :omfg:
Scusa se te lo chiedo perchè mi fai domande che non c'entrano col topic ? :\

- - - Updated - - -

Mr simpatia ti ho fatto una domanda è consuetudine rispondere grande programmatore :\
1- Naturalmente la mia era una domanda retorica, si capisce benissimo che non hai la minima idea di cosa scrivi. A parlare, e soprattutto sostenere, cose che non si conoscono si finisce per fare figuracce come quella che hai appena fatto, riportando un inutile pezzo di testo che sembra più un file passato nel tritarifiuti. Vorrei che tu riuscissi a fare una qualsiasi operazione di ciò che hai scritto.
Non fa male a nessuno sti caxxi: poteva esserci codice per danneggiare file e te non capendoci niente lo diffondevi come buono.
2- Non sono domande, ma UNA domanda singolare e centra con il topic perchè quando uno scrive stronzate vanno corrette, quel topic è spazzatura e un insulto alla programmazione asm.
3- Magari non l'hai letto da nessun parte, e percio' non lo sai, ma le persone al di fuori di internet possono anche avere una vita propria, un lavoro, una famiglia... sollecitare una riposta dopo due ore è molto più che semplice maleducazione.
 
1- Naturalmente la mia era una domanda retorica, si capisce benissimo che non hai la minima idea di cosa scrivi. A parlare, e soprattutto sostenere, cose che non si conoscono si finisce per fare figuracce come quella che hai appena fatto, riportando un inutile pezzo di testo che sembra più un file passato nel tritarifiuti. Vorrei che tu riuscissi a fare una qualsiasi operazione di ciò che hai scritto.
2- Non sono domande, ma UNA domanda singolare e centra con il topic perchè quando uno scrive stronzate vanno corrette, quel topic è spazzatura e un insulto alla programmazione asm.
3- Magari non l'hai letto da nessun parte, e percio' non lo sai, ma le persone al di fuori di internet possono anche avere una vita propria, un lavoro, una famiglia... sollecitare una riposta dopo due ore è molto più che semplice maleducazione.
Non volevo offendere la tua profonda anima di pura liberta e separatamente allo stesso tempo di programmazione
Ergo le chiedo umilmente perdono per aver offesso la programmazione
D'altro canto io ho provato semplicemente ad aiutare
Ma se lei signore la reputa alquanto inutile non c'è bisogno di essere così aggressivi
Adesso le porgo una domanda
Lei ha citato una vita sociale nonostante il bollino del on off era verde quindi io dovrei supporre che lei è una persona insicura dato che nessuno aveva citato la vita sociale .
Se vo signoria si degnasse di rispondermi io sarei alquanto soddisfatta
Cordiali saluti - Messier
 
Ultima modifica:
Non volevo offendere la tua profonda anima di pura liberta e separatamente allo stesso tempo di programmazione
Ergo le chiedo umilmente perdono per aver offesso la programmazione
D'altro canto io ho provato semplicemente ad aiutare
Ma se lei signore la reputa alquanto inutile non c'è bisogno di essere così aggressivi
Adesso le porgo una domanda
Lei ha citato una vita sociale nonostante il bollino del on off era verde quindi io dovrei supporre che lei è una persona insicura dato che nessuno aveva citato la vita sociale .
Se vo signoria si degnasse di rispondermi io sarei alquanto soddisfatta
Cordiali saluti - Messier
hahah ma qui siamo oltre hahahahah, non ho mai visto na cosa del genere ahhaha
Per offendere la mia anima, prima dovrei averne una.
Allora siccome vuoi farti i caxxi miei, ti dico come è andata. Sta mattina dopo aver risposto, ho lasciato il pc acceso (e non lo spengo mai), con la pagina web aperta. Poi sono uscito per andare da clienti.
Visto che storia incredibile, non avresti mai pensato che qualcuno potesse lasciare addirittura un browser aperto in un forum eh?

Tornando alle cose intelligenti, la tecnica della scemetta signoria vostra non attacca per niente, se uno scrive stronzate lo dico indipendentemente da età e sesso.
Ora se hai finito con le stronzate potresti dimostrare l'utilità di quanto hai scritto nel primo topic. Te ho già chiesto anche prima.

- - - Updated - - -

PS: ah, sto andando a pranzare, e lascio il browser aperto... non si sa mai che vedi il bollino verde e non capisci.
 
Ma sei stato fortunato che neanche ti ha permabannato, se ero io già ti avrei mandato fuori a calci in culo ma dato che predator non si abbassa al tuo livello vediamo che altre cagate scrivi
 
  • Mi piace
Reazioni: Mavin
Ma sei stato fortunato che neanche ti ha permabannato
Solo perché i moderatori di sezione non hanno il potere di bannare :asd:

Emi, a te non serve a niente postare cose copiate che non sai neanche di cosa parlano. Agli altri serve a poco perché se non sai neanche cosa posti, rischi di rilasciare materiale inutile, dannoso, pericoloso o obsoleto. Se lo fai per cercare di ottenere like o reputazione, bhé sbagli: qui non siamo nelle sezioni di gaming, sono sezioni più serie: gli utenti non danni like/+1 a caso e alle guide copia-incolla non li danno. Inoltre ciò cala anche la tua reputazione generale all'interno del forum.
Impegnati se vuoi aiutare la community e/o aumentare la tua reputazione tra gli utenti. Il copia-incolla non è vantaggioso per niente. La scrittura di una guida da zero invece per molto.
 
  • Mi piace
Reazioni: Leotichidas
L'Assembler è il compilatore dell'Assembly.

Comunque, quando leggo in un titolo di una discussione "Guida", soprattutto una guida per un linguaggio di programmazione, mi aspetto di leggere delle Guide step by step e ben dettagliate, poi beh, se uno sa costruire una casa dall'alto verso il basso senza badare ai dettagli, tanto di cappello, ma di sicuro io non ci andrei a vivere.
 
Emi, a te non serve a niente postare cose copiate che non sai neanche di cosa parlano. Agli altri serve a poco perché se non sai neanche cosa posti, rischi di rilasciare materiale inutile, dannoso, pericoloso o obsoleto. Se lo fai per cercare di ottenere like o reputazione, bhé sbagli: qui non siamo nelle sezioni di gaming, sono sezioni più serie: gli utenti non danni like/+1 a caso e alle guide copia-incolla non li danno. Inoltre ciò cala anche la tua reputazione generale all'interno del forum.
Impegnati se vuoi aiutare la community e/o aumentare la tua reputazione tra gli utenti. Il copia-incolla non è vantaggioso per niente. La scrittura di una guida da zero invece per molto.

Stavo pensando si scrivere la stessa cosa leggendo la prima pagina, ma mi hai tolto le parole dalla bocca. :quoto:
 
A parte un copia e incolla e nulla di tuo, dato che ho le stesse parole su un vecchio libro di scuola, la cosa che non ho mai capito, infatti riuscivo a prendere 6 in assembly, è..
Ai tempi d'oggi a cosa serve?
 
A parte un copia e incolla e nulla di tuo, dato che ho le stesse parole su un vecchio libro di scuola, la cosa che non ho mai capito, infatti riuscivo a prendere 6 in assembly, è..
Ai tempi d'oggi a cosa serve?
Bè basti pensare che già conoscendo l'assembly sei un programmatore ad un altro livello perchè conosci VERAMENTE come funziona il tuo elaboratore. Per non parlare poi delle opportunità lavorative che ti si aprono, il reverser che sà il fatto suo e lavoro per software di sicurezza banche, government, non prende poco....
 
Bè basti pensare che già conoscendo l'assembly sei un programmatore ad un altro livello perchè conosci VERAMENTE come funziona il tuo elaboratore. Per non parlare poi delle opportunità lavorative che ti si aprono, il reverser che sà il fatto suo e lavoro per software di sicurezza banche, government, non prende poco....
Grande programmatore illuminaci tu che sei nei cieli .. :omfg:

- - - Updated - - -

A parte un copia e incolla e nulla di tuo, dato che ho le stesse parole su un vecchio libro di scuola, la cosa che non ho mai capito, infatti riuscivo a prendere 6 in assembly, è..
Ai tempi d'oggi a cosa serve?
In sta community tutto e leechato da epvp l'unica differenza è che io ho messo le fonti :\

- - - Updated - - -

Stavo pensando si scrivere la stessa cosa leggendo la prima pagina, ma mi hai tolto le parole dalla bocca. :quoto:
Non commentare alla cavolo come hai fatto in feedback con tutte le cose .. te lo dicono tutti è meglio che stai zitto e non sai manco di che parli :\

- - - Updated - - -

Solo perché i moderatori di sezione non hanno il potere di bannare :asd:

Emi, a te non serve a niente postare cose copiate che non sai neanche di cosa parlano. Agli altri serve a poco perché se non sai neanche cosa posti, rischi di rilasciare materiale inutile, dannoso, pericoloso o obsoleto. Se lo fai per cercare di ottenere like o reputazione, bhé sbagli: qui non siamo nelle sezioni di gaming, sono sezioni più serie: gli utenti non danni like/+1 a caso e alle guide copia-incolla non li danno. Inoltre ciò cala anche la tua reputazione generale all'interno del forum.
Impegnati se vuoi aiutare la community e/o aumentare la tua reputazione tra gli utenti. Il copia-incolla non è vantaggioso per niente. La scrittura di una guida da zero invece per molto.
Beh se una guida uccide la community allora non facciamola.. chiedo umilmente perdono :asd:
Ps continuate a quotare mi diverto :oddio:
 
Emi puoi anche smetterla di fare l'arrogante e figure di cacca, sopratutto dopo che hai postato una cazzata estrema.
chiudo.
 
Stato
Discussione chiusa ad ulteriori risposte.