Sartomiki.net

  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri
Home Appunti Calcolatori elettronici Linguaggio assembler

Linguaggio assembler

E-mail Stampa PDF
Valutazione attuale: / 0
ScarsoOttimo 

masmI programmi Assembler sono composti di:
•    Istruzioni: generano un’istruzione macchina
     o    Codice operativo, serie di bit destinata all’esecuzione di una determinata istruzione
     o    Operandi, situati in una locazione di memoria. Possono essere variabili, costanti o identificatori.
•    Pseudoistruzioni o direttive: sono comandi per l’assemblatore
     o    Definizione di variabili
     o    Definizione di costanti
     o    Gestione dei segmenti del codice

Modi di indirizzamento: i dati possono essere contenuti in registri, memoria, periferiche di I/0, nell’istruzione stessa:
•    Register, nell’istruzione è specificato il registro da utilizzare come operando
•    Immediate, nell’istruzione è specificato il dato da utilizzare con operando
•    Direct, nell’istruzione è specificato l’identificatore a una variabile in memoria da utilizzare come operando
•    Register Indirect, l’operando è contenuto in un registro indice (BX, DI, SI, BP)
•    Base Relative, l’indirizzo dell’operando è calcolato mediante la somma di un registro indice con una costante precisata nell’istruzione
•    Direct Indexed, l’indirizzo è ottenuto sommando il contenuto di DI o SI con il contenuto di una variabile che funge da offset
•    Base Indexed, l’indirizzo è ottenuto sommando il contenuto di DI o SI con l’offset contenuto in BX o BP.

Esistono 92 istruzioni nell’8086 di diverso tipo:
•    Trasferimento Dati
•    Aritmetiche
•    Manipolazione di Bit
•    Control Transfer
•    Manipolazione di Stringhe
•    Interrupt Handling
•    Process Control

MOV non ammette alcune combinazioni di operandi:
•    MOV MEMORIA, MEMORIA (conviene passare tramite i registri)
•    MOV SEGMENT REGISTER,  SEGMENT REGISTER (conviene passare tramite stack)
•    MOV SEGMENT REGISTER, IMMEDIATO (passare tramite registri)
•    MOV AL, AX (usare la funzione cbw)

L’istruzione SHR equivale ad una divisione per 2^n. (per numeri senza segno, altrimenti SAR)
L’istruzione SHL equivale ad una moltiplicazione per 2^n. (per numeri senza segno, altrimenti SAL)

JMP supporta due tipi di salto incondizionato:
•    Diretti
     o    Short, l’indirizzo è memorizzato come differenza (displaycement) tra la partenza e l’arrivo in un solo byte
     o    Near, l’indirizzo è memorizzato come differenza (displaycement) tra la partenza e l’arrivo in una word
     o    Far, l’indirizzo è su due word: è quindi memorizzato l’intero indirizzo.
•    Indiretti, l’indirizzo non è indicato ma viene fornito il puntatore alla locazione nella quale trovare l’indirizzo destinazione

CALL si comporta diversamente a seconda della procedura chiamata:
•    se la procedura chiamata è di tipo NEAR, carica nello stack solo il contenuto dell’Instruction Pointer (IP), cioè l’indirizzo di offset dell’istruzione successiva;
•    se la procedura chiamata è di tipo FAR, carica nello stack prima il contenuto del registro di segmento CS e poi il contenuto del registro IP.

Le procedure comunicano tra di loro tramite il passaggio di parametri che può avvenire:
•    by value, viene spedita alla procedura una copia del parametro
•    by reference, viene inviato l’indirizzo sul quale agire

Si possono usare diverse strategie per passare i parametri:
•    le variabili globali
•    i registri
•    lo stack

Le istruzioni per il controllo del processore servono a regolare il comportamento del processore a seconda di alcuni parametri modificabili via software. Si dividono nelle seguenti categorie:
•    istruzioni per la gestione delle interruzioni servono a gestire gli Interrupt software. L’arrivo di un segnale di interrupt causa il salvataggio di IP e CS, del Flag Register e l’esecuzione di una specifica routine di gestione dell’interrupt
•    istruzioni sui flag permettono di settare il valore di alcuni flag
•    istruzioni di sincronizzazione permettono di utilizzare dispositivi esterni
•    istruzione nulla (NOP)


blog comments powered by Disqus
 

http://sartomiki.net/modules/mod_fuofb/assets/it/find-us-on-facebook-1.png

Follow me

Amici

Chi è online

 11 visitatori online

Siti amici

Banner

Notizie flash

Ora potete linkare gli articoli e gli appunti su Facebook, mediante l'apposito tasto presente in alto a destra! Condividete!

PUBBLICITA'