La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione assembler

Presentazioni simili


Presentazione sul tema: "Programmazione assembler"— Transcript della presentazione:

1 Programmazione assembler
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


Scaricare ppt "Programmazione assembler"

Presentazioni simili


Annunci Google