1 / 19

Debug

Debug. Programmazione assembler. 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).

Télécharger la présentation

Debug

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 dell’utente. • 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 • Comando A – scrivere le istruzioni (e d i t ) • Terminare la fase di edit con un invio su una riga vuota • Comando R – impostare la lunghezza del programma • Comando N – Assegnare il nome al programma • 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 all’indirizzo 100 (h). • A 100 per cominciare la fase di edit. • Ad ogni pressione del tasto Enter (Invio) l’istruzione è confermata e si può scrivere la successiva. • Debug riporta sempre l’indirizzo delle istruzioni digitate. • Per terminare l’editazione del programma, bisogna premere Enter su una riga vuota

  11. Lunghezza del programma • Calcolare la lunghezza in byte del programma sottraendo l’indirizzo 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. • L’avviso di terminazione, che deve essere sempre l’ultima 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 l’interruzione 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

More Related