La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Debug Programmazione assembler. DEBUG.COM Il modo più immediato di scrivere programmi in Assembly per x-86 è tramite il programma di Sistema Operativo.

Presentazioni simili


Presentazione sul tema: "Debug Programmazione assembler. DEBUG.COM Il modo più immediato di scrivere programmi in Assembly per x-86 è tramite il programma di Sistema Operativo."— Transcript della presentazione:

1 Debug Programmazione assembler

2 DEBUG.COM Il modo più immediato di scrivere programmi in Assembly per x-86 è tramite il programma di Sistema Operativo DEBUG.COM fornito su tutte le piattaforme Microsoft tramite la Shell di MsDos (invocabile a sua volta usando il comando cmd). Con questo programma si scrivono programmi assembly x-86 in formato COM e con indirizzi assoluti numerici. DEBUG.COM è disponibile su ogni piattaforma Microsoft x-86 (ovvero da MsDos fino a Win32). Non su Windows7 64 bit.

3 I comandi Debug è un ambiente a carattere, con un prompt (il trattino) che attende un comando dellutente. Tutti i numeri utilizzati con Debug sono sempre in formato esadecimale; per usare una diversa rappresentazione va specificato il formato in coda al numero. Debug non è case sensitive, ovvero non distingue se il comando è scritto in maiuscolo o in minuscolo, comportandosi allo stesso modo in entrambi i casi.

4 Comandi debug

5 d (dump) (esplorare la memoria)

6 Risultato del comando d 8 righe così strutturate: sinistra: indirizzo (segmento e offset) centro: contenuto dei 16 byte (in esadecimale). destra: mostra le stesse 16 celle di memoria in formato Ascii stampabile, cioè escludendo i simboli con codici Ascii da 00h a 1Fh (caratteri di controllo) e da 80h a FFh (caratteri Ascii estesi). Se il carattere non è stampabile, viene sostituito da un punto.

7 r (operare con i registri) Consente di visualizzare il contenuto e lo stato dei registri x-86, e di impostarne il valore. I valori visualizzati sono espressi in esadecimale, mentre il registro dei Flags è mostrato attraverso delle sigle convenzionali. Esempi: r Visualizza lo stato dei registri r CX Imposta il registro CX r f Imposta uno o più bit del registro dei Flag

8 Comando r (esempio)

9 Scrivere un programma 1. Comando A – scrivere le istruzioni (e d i t ) 2. Terminare la fase di edit con un invio su una riga vuota 3. Comando R – impostare la lunghezza del programma 4. Comando N – Assegnare il nome al programma 5. Comando W – Salvare il programma su disco

10 Comando a Il comando A deve essere specificato con l[indirizzo] impostato a 100 (esadecimale); la prima istruzione di un programma.COM deve sempre trovarsi allindirizzo 100 (h). A 100 per cominciare la fase di edit. Ad ogni pressione del tasto Enter (Invio) listruzione è confermata e si può scrivere la successiva. Debug riporta sempre lindirizzo delle istruzioni digitate. Per terminare leditazione del programma, bisogna premere Enter su una riga vuota

11 Lunghezza del programma Calcolare la lunghezza in byte del programma sottraendo lindirizzo iniziale (100h). Questa dimensione va specificata nel registro CX tramite il comando R, nella forma R CX. Si digita la dimensione e la si conferma con Enter.

12 Nome del programma (n) Ora si può assegnare il nome al programma con il comando N. Il nome deve rispettare le regole per gli identificatori di MsDos e deve avere estensione COM. Esempio N PROVA.COM.

13 Scrittura e uscita (w) (q) Il comando W salva il programma su disco (nella cartella corrente). Ora si può uscire (comando Q) e lanciare il programma dal prompt di MsDos.

14 terminazione programma Ogni programma quando termina deve avvisare il Sistema Operativo tramite una interruzione sw specifica. Lavviso di terminazione, che deve essere sempre lultima istruzione Interruzione DOS INT 20h

15 Il programma più corto …

16 Istruzione nop Sintassi: NOP Scopo: Non fa nulla. Usata per scopi di servizio, esempio per allineare una sequenza di istruzioni. Esempio: NOP

17 Modificare un programma

18 Visualizzare un carattere Per visualizzare un carattere è possibile utilizzare linterruzione BIOS 10h Con sottofunzione 0Eh Il codice ascii del carattere da visualizzare va posto in AL Esempio: mov al,43 Codice Ascii da stampare (43h = C) mov ah,0e Sottofunzione 0Eh di INT 10h, Stampa carattere sullo Schermo int 10 Lancio interruzione sw Bios 10h

19 Problemi Visualizzare il primo carattere del proprio nome Visualizzare il proprio nome Visualizzare il numero 8


Scaricare ppt "Debug Programmazione assembler. DEBUG.COM Il modo più immediato di scrivere programmi in Assembly per x-86 è tramite il programma di Sistema Operativo."

Presentazioni simili


Annunci Google