.........IL DEBUG........
Il programma Debug, tutti ce l'hanno ma solamente pochi sanno a che cosa serve.Il Debug è un programma molto potente, con il quale potete modificare partition tables, compilare com files e tanto ancora.Se usato Debug il codice verrà scritto direttamente in memoria e sarà capace solamente di creare files .com che non superano la grandezza di 64 KB.Ma vediamo un pò i comandi che abbiamo a disposizione usando il Debug:
A
..........................Assembla + l'indirizzo, offset 0100HC
..........................Confronta + intervallo indirizzo, confronta due parti della memoriaD
..........................Dump + intervallo, visualizza una parte della memoriaE
.......................Immetti + indirizzo, elenco,immette un valore all'indirizzo specificatoF
..........................Riempi + intervallo,elenco,riempia una parte della memoria con valori specificatiG
.........................Vai + indirizzo, esegue l'eseguibileH
.........................Esadecimale + valore, esegue calcoli esadecimaliI
...........................Input + porta, immette un byte dalla porta specificataL
.........................Carica + indirizzo,unità,primo settore,numero;carica il contenuto di un file oppure un settore del discoM
................Muovi + intervallo,indirizzo,copia il contenuto di una parte della memoriaN
.........................Nome + nome percorso,elenco argomenti; specifica il file da caricare oppure sul quale scrivereO
.........................Output + porta byte,esegue l'output di un byte sulla portaP
...........Procedi + indirizzo, numero,esegue un loop,reps,int oppure una subroutineQ
........................Esci; esce dal programma DebugR
........................Registro + registro; visualizza i registriS
........................Cerca + intervallo, elenco,cerca una quantità di bytes nella memoriaT
........................Traccia + indirizzo, valore,esegue un'istruzione e visualizza i registriU
........................Disassembla + intervallo,questo comando visualizza il codice asmW
.......................Scrivi + indirizzo, unità, primo settore, numero,scrive un file sul discoXA
......................Alloca memoria espansa + numero pagineXD
.....................Rilascia memoria espansa + handleXM
.....................Mapping pagine di memoria espansa + pagLog, pagFis, handleXS
.....................Visualizza stato memoria espansa
Adesso un piccolo esempio assemblando con il Debug.Dopo averlo eseguito digitate:
A 0100
; inizia ad assemblare all'offset 0100h, l'inizio del com fileMov dl, 52
Mov ah,2
; la funzione 02 per visualizzare caratteriInt 21h
Mov dl,45
; e in dl troviamo una serie di caratteri esadecimaliInt 21
; esegue la funzioneMov dl, 4e
Int 21
Mov dl, 2d
Int 21
Mov dl, 5a
Int 21
Mov dl, 49
Int 21
Mod dl, 4e
Int 21
Mov dl, 45
Int 21
Mov dl ,0d
Int 21
Mov dl,0a
; 0d e 0a hanno corrispondono a CR e LFInt 21
Int 20
; termina il programmaBene, premete di nuovo invio finchè vi sarà visualizzata di nuova l'inizio della riga con "-" e premete "g". L'esito è che verrà semplicemente visualizzato il testo "REN-ZINE".Non abbiamo fatto altro che scrivere ogni lettera con il suo valore esadecimale.La "h" dopo una funzione oppure dopo un interrupt la potete lasciare anche via, visto che il Debug lavora come default con valori esadecimali. Ovviamente tutto quanto si può scrivere in un modo molto più veloce è semplice, cioè:
A 0100
; l'inizio ovviamente rimane sempre lo stessoJmp 0115
Db " REN-ZINE"0d,0a"$"
; il nostro testo da visualizzareMov dx, 102
; 102 perchè il nostro jump all'inizio occupa 2 bytesMov ah, 9
; questa funzione la conosceteInt 21
; esegue tutto quantoInt 20
;ritorna al DOSMolto più semlice,no ?
Si possono fare un sacco di altre cose con debug, anche compilare direttamente files .asm, però è molto più comodo usare un editor qualsiasi e poi compilarlo con il Tasm oppure il programma che vi piace di più.Forse per voi che state iniziando sarebbe utile l'assemblatore A86, visto che inserisce automaticamente nel file asm gli errori commessi, oppure anche la questione di code segment e il partire dall'offset 100h , ci pensa lui :), perchè usa come default queste opzioni.
Alcuni batch virus utilizzano il debug, cioè quando eseguiti compilano un codice tramite il debug.E' importante sapere che il Debug è un programma molto potente. Bastano pochi bytes cambiati nella partition table è il vostro disco fisso andrà in Tilt.E tutto questo con un semplice programma che acceda ai settori del disco oppure con il Debug.