.........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 0100H

C..........................Confronta + intervallo indirizzo, confronta due parti della memoria

D..........................Dump + intervallo, visualizza una parte della memoria

E.......................Immetti + indirizzo, elenco,immette un valore all'indirizzo specificato

F..........................Riempi + intervallo,elenco,riempia una parte della memoria con valori specificati

G.........................Vai + indirizzo, esegue l'eseguibile

H.........................Esadecimale + valore, esegue calcoli esadecimali

I...........................Input + porta, immette un byte dalla porta specificata

L.........................Carica + indirizzo,unità,primo settore,numero;carica il contenuto di un file oppure un settore del disco

M................Muovi + intervallo,indirizzo,copia il contenuto di una parte della memoria

N.........................Nome + nome percorso,elenco argomenti; specifica il file da caricare oppure sul quale scrivere

O.........................Output + porta byte,esegue l'output di un byte sulla porta

P...........Procedi + indirizzo, numero,esegue un loop,reps,int oppure una subroutine

Q........................Esci; esce dal programma Debug

R........................Registro + registro; visualizza i registri

S........................Cerca + intervallo, elenco,cerca una quantità di bytes nella memoria

T........................Traccia + indirizzo, valore,esegue un'istruzione e visualizza i registri

U........................Disassembla + intervallo,questo comando visualizza il codice asm

W.......................Scrivi + indirizzo, unità, primo settore, numero,scrive un file sul disco

XA......................Alloca memoria espansa + numero pagine

XD.....................Rilascia memoria espansa + handle

XM.....................Mapping pagine di memoria espansa + pagLog, pagFis, handle

XS.....................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 file

Mov dl, 52

Mov ah,2 ; la funzione 02 per visualizzare caratteri

Int 21h

Mov dl,45 ; e in dl troviamo una serie di caratteri esadecimali

Int 21 ; esegue la funzione

Mov 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 LF

Int 21

Int 20 ; termina il programma

Bene, 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 stesso

Jmp 0115

Db " REN-ZINE"0d,0a"$" ; il nostro testo da visualizzare

Mov dx, 102 ; 102 perchè il nostro jump all'inizio occupa 2 bytes

Mov ah, 9 ; questa funzione la conoscete

Int 21 ; esegue tutto quanto

Int 20 ;ritorna al DOS

Molto 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.

 

RITORNA