Anteprima
Vedrai una selezione di 10 pagine su 469
Architetture Sistemi Elaborazione Pag. 1 Architetture Sistemi Elaborazione Pag. 2
Anteprima di 10 pagg. su 469.
Scarica il documento per vederlo tutto.
Architetture Sistemi Elaborazione Pag. 6
Anteprima di 10 pagg. su 469.
Scarica il documento per vederlo tutto.
Architetture Sistemi Elaborazione Pag. 11
Anteprima di 10 pagg. su 469.
Scarica il documento per vederlo tutto.
Architetture Sistemi Elaborazione Pag. 16
Anteprima di 10 pagg. su 469.
Scarica il documento per vederlo tutto.
Architetture Sistemi Elaborazione Pag. 21
Anteprima di 10 pagg. su 469.
Scarica il documento per vederlo tutto.
Architetture Sistemi Elaborazione Pag. 26
Anteprima di 10 pagg. su 469.
Scarica il documento per vederlo tutto.
Architetture Sistemi Elaborazione Pag. 31
Anteprima di 10 pagg. su 469.
Scarica il documento per vederlo tutto.
Architetture Sistemi Elaborazione Pag. 36
Anteprima di 10 pagg. su 469.
Scarica il documento per vederlo tutto.
Architetture Sistemi Elaborazione Pag. 41
1 su 469
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Operazioni su stack

X:=-M SXM:=X TAPCCR:=d --- ------ --- --- TPAd:=CCR TXSs:=SP --- --- --- --- ---TSXSP:=s --- --- --- --- --- BISPSWSR:=im LDSSR:=M LPSW --- --- --- ---STSM:=SR --- LPS --- --- LDPS ---SR:=G LRS:=M --- --- --- MTPRSRM:=S LDRS:=G1.3

Le istruzioni specifiche di push e pop di cui alla tab. 6.3 sono:

Istruzione 370d 1100d G20d 6800d Z8000d VAXd
--- --- --- PSH* --- --- ---
pushm (SP,a) --- --- --- --- PUSH ---
pushm(SP,G) --- --- --- PUSH --- ---
pushm (R,G) --- --- --- --- --- PUSH
popm (R,G) --- --- --- --- --- POP

Nelle architetture mostrate di precedenti generazioni, i soli 6800d e VAXd prevedono l'uso di stack a livello linguaggio macchina. Infatti, il push e il pop venivano effettuati nel passato soltanto usando normali registri puntatori allo stack realizzato in memoria via software.

1.4 Miscellanea

Si noti in generale che:

  • Il 370d, possedendo registri generali e non modi espliciti, distingue le operazioni in "Load" e "Load Register", per il trasferimento

Verso registri e "Store" per il trasferimento in memoria. Analogamente opererà nelle tabelle successive.

Il 1100d, possedendo più banchi di registri ed una struttura costante delle istruzioni nella quale il modo esplicito è riservato all'indirizzamento dell'altro operando, distingue le istruzioni in "Load(o Store) Accumulator", "Load (o Store) Index", "Load (o Store) Register".

Il G20d carica l'unico accumulatore con il codice CLA, i registri-indice indirizzabili con LXP, un registro d'indirizzamento ausiliario con OCA; i trasferimenti inversi si ottengono con lo Store.

Istruzioni di trasferimento dati per architetture storiche.

Il 6800d ha struttura analoga al G20d (LDA*, LDX, STA*, STX), ma il registro-indice x è unico e quindi implicito.

Il VAXd, ortogonale, usa il solo codice MOVE per tutti.

i trasferimenti, con la sola eccezione di· quelli che coinvolgono i registri speciali.· Lo Z8000d è simile al 68000, con il codice LDK che si applica a registri generali.In tab.6.4 sono riportati i principali acronimi dei codici operativiTab.6.4 Principali acronimi dei codici operativi1100d 6800dSA, SR, SX, Store Accum., Register, indeX LDAA,LDAB LoaD Accumulator A, BLA, Load Accumulator (di un banco) LDS, LoaD program Status;LDR, LoaD special Register; LDX, LoaD indeX;LMA, Load Magnitude; PSH*, push accumulatorLNA, LoaD Negate; STA*, STX, STS, Store Accum.; indeX; SPLPS, Load Program Status; TAP, Transfer A in P; TXS, X in S;LR, LR, Load Register G20dLX, Load indeX; CCL, Clear & Complement Logical;LX, Load indeX; CLA, CLS CLear & Add, SubtractLXP, LXM Load indeX Plus, Minus;370dLCR, Load Complement Register OCA, OCS : OA Clear & Add, SubtractLPR, Load Positive Register STI, STS, STD, Store Integer, Single, Double;LPSW, Load Program Status Word; VAXdLR,Load Register; L: Load; BISPSW, Bit Set in PSW; ZAP, Zero Add Packed; MCOM, Move Complement; MTPR, Move To Processor Register; Z8000dLDK, LoaD Konstant; PUSHL, Push Longword; 3 of 3 25/01/2007 20.08;

Istruzioni aritmetiche e logiche

Qui sono presentate le architetture esemplificate

Qui la legenda dei simboli per indicare la natura di un operando

Qui i simboli generali e specifici per individuare i registri di macchina

1 Istruzioni aritmetiche e logiche

1.1 Addizione, sottrazione e operazioni logiche

In tab.7.1 sono riportate alcune fra le principali istruzioni di addizione, sottrazione, con riferimento ai tipi di dati già trattati per le operazioni di trasferimento (virgola fissa di 8, 16 o 32 bit; ovviamente, per tutte le tre architetture si prevedono estensioni a tipi più evoluti, che qui non si illustrano.

Tabella 7.1 Istruzioni di addizione, sottrazione e logiche

8086d

68000d

RISCd

Istruzione Unarie

NEG

NEG

---

G:=-G

NOT

NOT

---

Addizione,

sottrazione. And, Or, etc.

R:=R+G ADDG:=G+R --- ---ANDR:=RÙGG:=GÙRD:=D+G ADDG:=G+D --- ---ANDD:=DÙGG:=GÙD ADDIG:=G+im --- ---ANDIG:=GÙim ADDR1:=R2+R3 --- --- ANDR1:=R2ÙR3 ADDIR1:=R2+im --- --- ANDIR1:=R2Ùim

Moltiplicazione e divisione

MUL --- ---d:=d*G --- MULU ---D:=D*G --- --- MULTUs:=R1*R2

Simili per struttura alle operazioni aritmetiche sono quelle "logiche" (not, and, or, etc.), che operano su tipi "array di bit" delle medesime lunghezze dei dati aritmetici.

Le uniche operazioni unarie oggi diffuse sono la costruzione dell'opposto e analogamente il not logico: NEG G presente sia nell'8086 (formato di fig.3.1b) sia nel 68000d (formato di fig.3.2c), ma non nel RISCd;d'altro canto, l'opposto si può ottenere da una sottrazione (a:=0-a) e quindi non è essenziale. La NEG è aggiunta nel RISCd come pseudoistruzione, cioè come istruzione riconosciuta dall'assembler e

daquesto tradotta in linguaggio macchina. Altre operazioni unarie, come il calcolo del valore assoluto,diffuse in architetture delle precedenti generazioni, si possono trovare come pseudoistruzioni nellearchitetture moderne.

Per le operazioni binarie, la tabella si limita a mostrare le istruzioni di addizione, and emoltiplicazione; peraltro, ovunque ci sia l'addizione s'intende che esiste anche la sottrazione (codicioperativi SUB etc.), ove ci sia l'and esiste anche la or (OR) e la or esclusivo (XOR) e ove ci sia lamoltiplicazione anche la divisione (DIV).

Si noti in particolare:

  • la quasi completa ortogonalità del 68000d a livello macchina
  • ADD G,D (D:=D+G)
  • ADD D,G (G:=G+D)(formato di fig.3.2e) che quindi prevede l'accumulo anche in memoria;
  • l'analoga ortogonalità a livello assembler dell'8086d, come per le istruzioni di move (formato di1 of 3 25/01/2007 20.04Istruzioni aritmetiche e logiche
Formattazione del testo

file:///C:/Documents%20and%20Settings/BaRoN%20SaMeDi/Docum...fig.3.1b,d,e,f):ADD R,G (R:=R+G)ADD G,R (G:=G+R)· l'uso dei tre registri espliciti per il RISCd:ADD R1,R2,R3 (R1:=R2+R3)

1.2 Moltiplicazione e divisione

Per la moltiplicazione e divisione, si ricorda che il risultato ha un numero di bit doppio di quello[1] ; nelle tre architetture considerate si adottano tre soluzioni diverse. Con riferimentodegli operandialle operazioni per dati "unsigned" (numeri naturali) si ha:

8086d: l'istruzione opera implicitamente sull'accumulatore AX di 16 bit (formato di fig.3.1b):· MUL Ged il risultato è nei due registri AX e DX.

68000d: l'istruzione è a due operandi espliciti a 16 bit (formato di fig.3.2e):MULU D, Ged il risultato (a 32 bit) è in D.

RISCd: l'istruzione è a due registri espliciti di 32 bit (formato di fig.3.3???):· MULU R1, R2ed il risultato (a 64 bit) è nella coppia di registri

68000d, RISCd) che incrementa il valore di un registro di controllo o di indirizzamento (INC). Questa istruzione non è presente nell'8086d. Nella tabella 7.2 sono presenti anche altre istruzioni per l'aritmetica per l'indirizzamento e il controllo, ma non vengono specificate ulteriori informazioni a riguardo.

formato di fig.3.1b):INC G (G:=G+1) che è sostituita, nelle altre architetture da normali istruzioni di addizione o dalle tecniche diautoincremento.

1.4 Istruzioni di Shift

Nella tab.7.4 sono mostrate le operazioni di shift semplice (SHR, Shift Right; LSR, Logical ShiftRight, SRLV, Shift Right Logical Variable), le operazioni di shift aritmetici e quelle di shift circolari,dette anche di rotazione; esistono le analoghe a sinistra (SHL, LSL, SLL, etc.). Si tratta in ogni caso dishift multipli:

Istruzione 8086d 68000d RISCd
LSR mshr(D1,0,count)
SRLV mshr(R1,0,count) SRL (risultato in R3)
ASR mashr(D1,count) SRAV (risultato in R3)
SHR mashr(R1,count) SRA (risultato in R3)
ROR mcir(D1,count)
ROR mcir(R1,count) ROR

count= count= count=

Note s o im D o im R o immsh(r/l) (a,b,count): shift (destra/sinistra) a di count bit,

con inserimento di cmash(r/l) (a,count) : shift (destra/sinistra) aritmetico a di count bit

mci(r/l) (a,count) : shift (destra/sinistra) circolare a di count bit

per tutti il numero di shift (count) può essere un immediato, ma inoltre può essere pet l'8086d il registro riferito implicitamente CL, per il 68000 un secondo registro-dati D2 e per il RISCd un secondo registro generale R2.

Sia per il 68000d sia per il RISCd le istruzioni hanno codici diversi a seconda che il numero di shift richiesti sia contenuto in un registro o sia un immediato, ma il 68000d presenta il medesimo codice al livello assembler; mentre il RISCd, in accordo con la sua struttura a 3 registri, pone il risultato dello shift (definito da R1 ed R2 oppure im) in R3..

Lo shift circolare è realizzato come pseudoistruzione nel RISCd.

Per le architetture storiche qui sono illustrate le istruzioni aritmetiche e logiche.[1]

La questione è trattata approfonditamente nel capitolo dell'aritmetica;

intuitivamente basta considerare che il prodotto di dnumeri di n cifre è in genere di 2n cifre.3 of 3 25/01/2007 20.04Istruzioni aritmetiche e logiche per architetture storiche file:///C:/Documents%20and%20Settings/BaRoN%20SaMeDi/Docum...Architetture storichePer le architetture "storiche":Qui sono presentate le architetture storiche esemplificateQui la legenda dei simboli per indicare la natura di un operando1 Istruzioni aritmetiche e logiche1.1 Addizione, sottrazione e operazioni logicheLe istruzioni so
Dettagli
Publisher
A.A. 2012-2013
469 pagine
2 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Sara F di informazioni apprese con la frequenza delle lezioni di Architetture Sistemi Elaborazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Fadini Bruno.