Uit Hack42
Versie door MacSimski (overleg | bijdragen) op 8 jan 2015 om 00:25 (Nieuwe pagina aangemaakt met ' =Parte 4 - Istruzioni= Le istruzioni possono essere eseguite in modo manuale, isolatamente, oppure inserite in un programma precedentemente caricato da tastiera o...')
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Ga naar: navigatie, zoeken

Parte 4 - Istruzioni

Le istruzioni possono essere eseguite in modo manuale, isolatamente, oppure inserite in un programma precedentemente caricato da tastiera o cartolina. Durante l’esecuzione delle istruzioni la macchina si pone in uno stato diverso da SA pertanto la tastiera è bloccata. Le istruzioni eseguite in manuale, hanno un svolgimento simile a quello atteso da una comune calcolatrice. L’istruzione è inserita in SA da tastiera. Tranne che per le istruzioni di stampa, gli stati esecutivi sono preceduti dagli stati SM, SN, SS, di stampa dell’istruzione e del dato eventualmente introdotto. In caso di moltiplicazione, divisione e radice, all’esecuzione dell’istruzione segue la stampa automatica del risultato. A fine esecuzione la macchina ritorna in SA ed attende l’intervento dell’operatore. In esecuzione programma l’istruzione è letta in SP, da un registro programma in cui è stata inserita precedentemente da tastiera o cartolina, gli stati esecutivi seguono immediatamente SP. Le stampe dei registri devono essere comandate da istruzioni specifiche. A fine esecuzione la macchina ritorna in SP ed estrae l’istruzione seguente.

Trasferimento

Le istruzioni di trasferimento che interessano i registri , sono tre, come da tabella: Codice Decodificato Descrizione X↑ X2 ZH Trasferisce M nel registro X X↓ X1 ZG Trasferisce il registro X in A X↨ X3 ZG Scambia A con il registro X La X in tabella indica il registro, intero o splittato, coinvolto nel trasferimento. Se X non è indicato nell’istruzione, il registro interessato è M. Gli stati esecutivi delle istruzioni di trasferimento sono: SB, SC, SD, SE con ritorno in SA se manuale e SP se programma. Lo stato SB, non ha funzione attiva nelle istruzioni di trasferimento. Il trasferimento viene attuato in SE, dopo che il contenuto dei registri A e M è stato allineato in SC o SD, con la cifra meno significativa sul 1° o 13° Crt.

Trasferimento da M

Il gate ( ZH * SE * LM * NH * TA \), nel multiplexer RN, attua il trasferimento di M nei registri deposito nel 2° ciclo di SE con NH set. A \↑ e A ↑ sono riservati alla istruzione Costante di programma. ↑ e R↑ non sono utilizzati. Il diagramma mostra il trasferimento di 3,14 da M in B. Diagramma. Trasferimento da M. Nel 2° ciclo di SE, si ha l’attivazione di RN → RB e la scrittura in LDR. Il ciclo seguente il 3,14 è letto in LB. La cancellazione del vecchio contenuto del registro si ottiene automaticamente in quanto la selezione diretta del registro seleziona RN escludendone la richiusura.

Trasferimento in A

L’istruzione X↓, trasferisce il contenuto del registro X nel registro A. Il trasferimento avviene nel 2° ciclo di SE, NH set. Il gate ( SE * ZG * NH ) blocca la richiusura di LA su RA, ed origina il segnale WK. 70Con riferimento ai dati da scrivere in A, WK come in X↨, scambio di X con A, abilita il multiplexer di registri LX in RA. LX è un multiplexer di registri, oltre M, A, R abilita LN, a sua volta multiplexer dei registri deposito. LX contiene l’informazione del registro il cui indirizzo appare nel codice dell’istruzione. Il diagramma, mostra il trasferimento di M (3,14) in A. Diagramma. Trasferimento X↓ .Stato SE .

Scambio con A

L’istruzione X↨, scambia il contenuto del registro X con quello di A. Lo scambio avviene nel 2° ciclo di SE con NH set. Il gate ( SE * ZG * NH ) blocca la richiusura di LA su RA ed origina il segnale WK. Con riferimento ai dati da scrivere in A, WK come in X↓, trasferimento in A abilita il multiplexer di registri LX in RA. LX abilita LN, a sua volta multiplexer dei registri deposito che contiene l’informazione del registro il cui indirizzo appare nel codice dell’istruzione. Con riferimento ai dati da scrivere nel registro deposito, i dati di RN scritti nel registro selezionato tramite RN, sono forniti da XC ( WK * HF * LA * WA \), con HF che discrimina tra l’istruzione di Scambio HF = 1 e Trasferimento in A HF = 0. Nella memorizzazione in LN, tramite MX, si ha l’allineamento dell’informazione dei registri del 1° banco a quelli del 2° banco. Il diagramma riporta lo scambio di; B (3,14) con A (6,28). L’allineamento tra registri del 1° banco 1 (B) con quelli del 2° banco (A) tramite il mastro MX che setta LN è reso evidente ingrandendo il diagramma al 500%. Diagramma. Scambio X↨ . Stato SE.

Trasferimento di parte decimale

L’istruzione /↨, trasferisce la parte decimale del contenuto di A in M. A resta invariato. La sequenza di stati esecutivi è quella comune alle istruzioni di trasferimento. Stato di fetch istruzione, SA o SP, seguito da SB, SC, SD e SE. L’istruzione /↨ origina DH, il quale forza il decodificato DA, selezione di A, oltre alla normale selezione di M. In SE, WK derivato da SE * ZG * NH, abilita UB4 , ZG * DM * VA * NKN, a scrivere il contenuto della parte decimale di A in M. VA deriva da XC, e quindi contiene A. Ricordando che l’istruzione di trasferimento ha allineato A sulla cifra meno significativa, sarà questa la prima ad essere letta in SE. NK che reset abilita UB4, scrittura di A in M, è resettato in SD da XO, e viene settato da WB, WK * DM * HD * TD * LA, virgola in A. Pertanto alla fine del trasferimento in M saranno trasferite tutte le cifre meno significative e i bit di servizio TD compreso delle unità. Se in A è contenuto un intero, in M viene trasferito uno 0 con segno. Il contenuto di A è preservato mediante la forzatura di DA, che bloccato M da DH, abilita A in LX che in WK riscrive A su se stesso. Si impedisce la scrittura di M in A. Diagramma Stato SE.

Aritmetiche

Le istruzioni aritmetiche sono eseguite nella sequenza di stati : SB, SC, SD, SE, SF, SG, SH, SK, SL. Di cui : • SB, SC, SD, SE • SF, SG, SH, SK, SL Stati preparatori . Stati esecutivi e di uso esclusivo delle aritmetiche. In somma, sottrazione, moltiplica e divisione : • Il 1° termine è specificato nella parte indirizzo del codice, bit TA-TC. • Il 2° termine dell’operazione è sempre implicito ed è il registro A. In radice, il termine unico indicato dalla parte indirizzo del codice istruzione, viene trasferito in A. Se non si specifica alcun registro, bit TA – TC a 0, di default, come 1° termine viene selezionato il registro M. Il registro A, ha la funzione di accumulatore, registro che memorizza il risultato delle somme binarie prodotte dai cicli elementari SF – SK. Il registro R, svolge la funzione di registro di appoggio durante il calcolo. La complessità della radice quadrata richiede un raddoppio del ciclo SF – SK. In SK avviene lo scambio tra A ed M, alla fine del doppio ciclo l’informazione logica in A ed M è ripristinata.

Stati preparatori aritmetiche

Stato SB

Lo stato SB è di 2 cicli di LDR . La distinzione tra i due cicli è data da NH settato da TT al termine del 1° ciclo. In SB avviene il trasferimento del registro indicato nell’indirizzo dell’istruzione, se radice quadrata in A, per le altre istruzioni di calcolo in M. Il gate ZA * SB * NH \ , durante il 1° ciclo cancella il contenuto di M. Lo stesso gate, se informazione (LN) in TM (24° Crt), pone la condizione di errore, set di ER tramite ZO, con SB * ZO * TM * LN * DR \. Il gate ZA * SB * LX * ZK \ * VX \ scrive in M, il registro selezionato posto in LX, tranne che in radice quadrata. Se radice quadrata, il gate ZK * SB * NH * TR * (TB + TD + TE), scrive in M, 1 con virgola. Il gate ZK * SB * NH \, in radice cancella A nel 1° ciclo. WA ( ZK * SB ), forza WK che in WK * LX * ( DA * TC * HD \ ) \ , scrive in A, il registro selezionato contenente il radicando.

Stati SC, SD

Per la descrizione degli stati SC e SD si rinvia al paragrafo “Elenco Stati e loro funzione” a pagina 27 di questo documento.

Stato SE

Lo stato SE è di 2 cicli di LDR. Durante il 1° ciclo NH = 0, avviene la conta che posiziona il TA in A, individuante la cifra decimale impostata nella rotella decimali. La conta si ottiene connettendo il sommatore al registro K, che a sua volta ricicla sul sommatore tramite XM. L’incremento alla conta ogni Crt è dato da NE, 3° ingresso del sommatore. A negativo è memorizzato in NK da ZA * SE * LA * TC . Il segno discorde in A ed M, è memorizzato in NL da ZA * SE * PA * PM * Rete confronto dei segni di A ed M. Dati gli elementi di partenza: • Registro di 24 Crt. • Riferimento di inizio conta dato dalla virgola del registro A. • Valore massimo impostabile su rotella di 15. • Supporto alla conta digit KE – KH, 4 bit del registro K. Ne segue che la conta deve essere divisa in due parti : 1° Parte Conta di 8, mediante preset di 8 del registro K. 2° Parte Conta del complemento a 15 del valore nella rotella. 1° parte della conta. XV ( SE * ZA * TD * LA ), virgola in A, origina WF che setta NG, abilitazione alla conta. WF presetta KE in TD, equivalente di KH in TA, cioè 8. Il gate SE * TE * NG * MM, setta NE ogni Crt fornendo l’incremento di 1. XT ( SE * NG * NE * TB) segnala riporto di cifra ( NE * TB ), setta NF e imposta il complemento della rotella (UD1 – UD4) in KC – KF. 2° parte della conta. WD ( SE * NF * NE * TA), riporto di cifra durante NF, 2° parte di conta, scrive il riferimento TA in A e con il reset di NG pone fine alla conta. L’esempio nel diagramma, pone in M 3,14 e in A 21,7. I registri sono entrambi allineati con la 1° cifra significativa nel 1° Crt dopo il gap, istruzione di divisione. Il TA in A, con la rotella impostata su 2, è scritto sul 22° Crt della LDR. Diagramma Stato SE. Impostazione decimali. 75In radice quadrata, durante SE avviene il controllo sul numero di cifre significative dopo la virgola. Se pari, ricordando che l’allineamento di A è avvenuto sul 1° Crt significativo, occorre ritardare A di una ulteriore cifra, in quanto l’algoritmo di radice in questo caso, opera a partire da una coppia di cifre. Il controllo sulla parità del numero di cifre che seguono la virgola in A è fatto da un riciclo NA – NB - NA ... per il periodo in cui vi sono cifre valide in A (PA = 1). Ogni ciclo NA – NB dura una coppia di Crt. Il Set di NA è iniziato da XV, virgola (TD) in A, nel 2° ciclo di SE (NH = 1). Il riciclo di NB su NA è attuato da ZK * SE * NB abilitato da PA, cifre valide in A. NA quindi è set durante le cifre dispari. TM, è posizionato sulla cifra che precede la più significativa o quella con virgola, su cui è avvenuto l’allineamento, quindi se NA è set durante TM il numero di cifre che seguono la virgola è pari. Questa condizione ZK * SE * TM * NA * TE setta NC che nello stato seguente SF, provocherà un ritardo ulteriore di 1 Crt di A. Il diagramma seguente, mostra il controllo di cifra pari con radice di 1234,7 trasferito da registro splittato. L’allineamento è quindi con TM sul 12° Crt. Diagramma Stato SE. Radice cifra pari.

Stati esecutivi SF, SG, SH, SK, SL

CH, or degli stati da SF a SK, abilita la riscrittura del TA nei registri A, M, R, quando questi sono connessi al registro K, tramite (CH * KA * TA). Il sommatore connesso ai registri A, M e R, viene utilizzato per operazioni di calcolo o conta. Dispone di 3 ingressi: • XA 1° Termine dell’operazione di calcolo. Non operativo in conta. • XM 2° Termine dell’operazione di calcolo o dato da incrementare in conta. • NE Riporto del calcolo o incremento di 1 se operazione di conta. 76L’hardware è capace di due tipi di operazioni, somma o sottrazione binarie. Quale operazione compia, è dato dalla rete logica VB: VB = 1 indica operazione di somma binaria, si verifica nei casi di: • Somma (+) e segni di A ed M concordi. • Sottrazione (-) e segni di A ed M discordi. • Moltiplicazione. • Divisione e radice in stato SK e nuova cifra (NM = 1). • Radice e 2° Ciclo SF - SK (NL = 1). Per esclusione negli altri casi, VB = 0, si ha sottrazione binaria. • • VB = 1 Somma M ad A. Il riporto di cifra si ha se il digit risultante, bit TE - TH, è > 9. VB = 0 Sottrazione, somma il minore tra A e M al complemento del maggiore. Il riporto di cifra si ha se il digit risultante, bit TE - TH, è > 15. Il risultato finale è sempre complementato Le cifre che hanno avuto riporto sono corrette mediante la somma di 6. Esse sono indicate dal bit TA, del Crt corrispondente, di M a 1. Il complemento a 15 si ottiene utilizzando il segnale negato per i soli Crt validi, il campo di validità è definito da PM, PA o PO. Il complemento del risultato, VB=0, avviene per i Crt entro PA e per i soli bit di cifra TE – TH (TK=0). Da quanto esposto il calcolo richiede tipicamente 5 operazioni che sono compiute negli stati esclusivi delle istruzioni aritmetiche : SF Confronto fra i 2 termini del calcolo. SG Conta dei cicli di calcolo. SH Operazione di somma o sottrazione. SK Correzione del risultato parziale del calcolo. SL Formattazione del risultato finale del calcolo. Le operazioni di calcolo richiedono, oltre al sommatore, un registro hardware (K) per: • Allineamento su cifra successiva. • Scrittura del bit TA marcatore della cifra da correggere. • Operazioni di conta Crt. Dato che l’informazione proviene da un registro, l’inserimento del registro K comporta il ritardo di quella informazione di 1 Crt rispetto gli altri registri per ogni giro di LDR a registro K connesso. Pertanto nel caso di calcolo per non perdere l’allineamento delle cifre contenute in A, M e R, i 3 registri ogni ciclo SF – SK, subiscono un ritardo di 1 Crt. Questo determina lo scorrimento dei registri A, M, R rispetto tutti gli altri di 1 Crt per ogni ciclo. Tipicamente • SG • SH • SK il registro K è connesso in: al registro R. al registro A. al registro M. Nel caso di esaurimento della cifra durante il calcolo, il posizionamento sulla cifra seguente si ottiene ritardando A ed R non M.

Connessione Sommatore, Registro K e registri A, M, R

Stato SF

In SF si esegue il confronto tra M ed A, tramite la somma tra M e il complemento di A. In radice se nello stato SE, la presenza di un numero di cifre pari intere ha settato NC, il confronto si esegue con KA, A ritardato di 1 Crt, negato. In questo caso, radice e cifra pari, in A si scrive l’informazione ritardata di KA. La condizione di A>M è data da riporto che si estende oltre la cifra più significativa, se VB = 0, SF * NE * NM \ * VB \ , setta NM. Il gate NL * ZK, 2° ciclo in radice, blocca l’ingresso XM, dato che in questo caso non è previsto confronto. In SF non si effettua alcun shift di registro oltre che il caso descritto di radice.

Stato SG

In SG avviene la conta dei cicli SF – SK con il registro R come contatore. XM è il tramite di R nel sommatore, mentre XA è mantenuto a 0. L’incremento di R si ottiene in: a) Moltiplicazione e divisione, sul Crt di R corrispondente alla virgola in M se in SF non si è settato NM, condizione di fine calcolo su cifra. b) Radice quadrata, nel 2° ciclo (NL) con il TB in A. Ricordo che nel 2° ciclo A essendo stata scambiato con M, ha attivo solo il TB della cifra meno significativa. Essendo in radice l’incremento condizionato da CH, esso si verifica anche in SH e SK. ZC è bloccato da ZK * SG, impedendo l’incremento sulla virgola di M nel 1° ciclo di radice. Onde mantenere l’allineamento con A e M, R è comunque connesso a K prima di richiudersi sulla LDR. In moltiplicazione il riporto di cifra WP ( SG * NE * TA), setta NM indicando esaurimento del ciclo di somme per la cifra considerata ed il passaggio alla seguente.

Stato SH

78SH somma algebricamente M ad A, con il risultato che si richiude su A tramite K. In sottrazione algebrica VB=0, se A>M (NM=0), si complementa A sull’ingresso XA. Se M>A (NM=1), si complementa M sull’ingresso XM. L’incremento di 1 di M, nel 2° ciclo di radice si ottiene con: XM = 0 Bloccando LM con ZK * NL . XA = A Logicamente M per effetto dello scambio in SK con A. NE = 1 Set con ZK * NL * CH * LA * TB * MT . In ingresso di K si copiano i bit di servizio (TK) di A tranne TC. Se riporto SH * NE *TB * ZK \ scrive un TB aggiuntivo. In uscita di K, si invalida la cifra se digit KE – KH = 0, ponendo TB = 0. In caso di riporto di cifra, SH * NE * TA scrive in M un TA , segnale per la correzione in SK della cifra corrispondente di A . Essendo il TA quello seguente il Crt che ha generato il riporto, se A è ritardato, il Crt con TA in M e Crt da correggere in A corrispondono. Richiudendosi K su RA, A funziona da registro accumulatore e viene ritardato di 1 Crt. Diagramma Stato SH . Somma 765,432 + 234,679.

Stato SK

In SK • • • si: Correggono le cifre con riporto segnalate da TA in M. Ritarda M riallineandolo ad A e R. In radice

2° ciclo, somma 1 ad M usando lo stesso meccanismo di SH . Scambio A con M in entrambi i cicli. Diagramma Stato SK . Somma 765,432 + 234,679. Correzione per riporto, VY (CH * LM *TA), setta NB, abilitando SK * NB * TE \ * TH \ (6) in ingresso XM del sommatore. WR (ZK * SK * NM \) genera XX, istruzione di radice e no esaurimento cifra NM \. XX abilita SK * XX * KA che richiudendo M su A completa lo scambio di A con M. WR agisce da switch, abilitando con il suo diritto VK (SK * XX * VS * TA \) la richiusura del sommatore su M. WR, con il negato, abilita la scrittura in M dell’uscita del registro K contenente M effettuando lo shift di M. VS tramite della richiusura del sommatore contiene: • Se VB = 1 XS segnale di somma. • Se VB = 0 XS \ segnale di somma invertito durante PA e per TE – TH. • A Per i bit TA – TD. Dopo gli stati SH e SK a completamento dell’esempio di somma onde poter verificare l’esito si presenta il diagramma dello stato SL. Diagramma Stato SL . Somma 765,432 + 234,679 = 1000,111 . A fine calcolo: • A Contiene il risultato formattato con i decimali impostati nella rotella. • R Contiene il risultato non formattato.

Addizione e sottrazione

L’istruzione di somma ha codice X4, la sottrazione ha codice X5. L’operazione eseguita dipende dalla combinazione di istruzione e segno dei termini, quindi somma e sottrazione hanno un decodificato unico ZB, oltre ZA che è comune a tutte le istruzioni aritmetiche. Il registro A accumulatore implicito, contiene inizialmente il 1° termine. Il 2° termine è contenuto nel registro il cui indirizzo compare nel codice istruzione. Nello stato SB il registro contenente il 2° termine è trasferito in M. I due termini interessati nell’istruzione, contenuti in M ed A, sono allineati sulla virgola in corrispondenza del Crt seguente TM. Il TM corrisponde al 24° Crt se registro intero, al 12° Crt se registro splittato. L’allineamento avviene negli stati SC per M e SD per A. VB è il segnale che determina se si esegue una somma o sottrazione. VB è prodotto dalla combinazione di: • Istruzione. • Segno del dato nel registro A. • Concordanza o meno di segno tra registri A ed M. VB = 1, indica somma binaria del contenuto di M al contenuto di A. Se VB = 0, la sottrazione binaria avviene sommando il dato minore tra A ed M, complementato a 15, al maggiore dei due. Il risultato è ottenuto dal complemento a 15 del contenuto di A . Il dato è complementato per la durata di PO or di PM e PA. Con somma binaria, il riporto si ha per >10 decimale. Con sottrazione binaria, il riporto si ha per >15 decimale. L’istruzione si compie in un solo ciclo SF – SK, essa viene completata con SL. Il totale dei 5 stati è di 5 giri di LDR. In caso di somma binaria, VB = 1 si ha: • SF Non operativo. • SG Non operativo in istruzioni di somma e sottrazione. • SH Somma di M in A. • SK Correzione delle cifre >9 con la somma di 6. • SL Formattazione del risultato in A. In caso di sottrazione binaria, VB = 0 si ha: • SF Confronto dato dalla sottrazione M – A. Se A < M, si ha riporto NE=1 oltre la cifra più significativa e set di NM. • SG Non operativo in istruzioni di somma e sottrazione. • SH Somma del complemento del dato maggiore al dato minore. • SK Correzione delle cifre >15 con la somma di 6 . Complemento dell’uscita sommatore. • SL Formattazione del risultato in A. In caso sottrazione binaria se: • M < A NM = 0 In SH è complementato A. • M > A NM = 1 In SH è complementato M. 81Il registro R non viene interessato durante il ciclo di calcolo SF _ SK. Il risultato completo viene trasferito in R, durante lo stato SL dal gate , LA * ( VD + SL + XL) * VD \ * TA \. Il segno viene completato da VA in SL * PA * VA * ZF \ * ZK \. A termine istruzione i registri A, M, R si ritrovano ancora allineati sulla virgola ma questa è spostata dal 1° al 2° Crt. I diagrammi seguenti si riferiscono alla somma 234,679 (A)+ (-765,432) (M).

Stato SF

Lo stato definisce in caso di sottrazione (VB = 0), se A < M. Il confronto avviene per sottrazione del complemento di A in XA, ad M in XM. In caso di A < M, il riporto di cifra si estende oltre la cifra più significativa e si ha il set di NM tramite il gate SF * NE * VB \ * PO \. Diagramma Stato SF. Somma 234,679 (A)+ (-765,432) (M)

Stato SG

In somma e sottrazione lo stato SG viene eseguito senza aver nessun effetto sulla esecuzione della istruzione.

Stato SH

Lo stato SH esegue l’operazione determinata dallo stato di VB e NM. Se VB = 1 si ha la somma con : • XA A diritto • XM M diritto Il riporto di cifra si ha per >9. SH * VC * LA . CE * LM * (ZK * NL) \ * NM \ . Se VB = 0 e NM = 0 ( A>M), si somma ad M il complemento di A, con: • XA A complementato SH * PO * LA \ * VB \ * NM \ . • XM M diritto CE * LM * (ZK * NL) \ * NM \ . Se VB = 0 e NM = 1 ( A<M), si somma ad A il complemento di M, con: • XA A diritto SH * VC * LA . • XM M complementato SH * ZB * PO * LM \ * NM . Se VB = 0, il riporto di cifra si ha per >15. Diagramma Stato SH . Somma 234,679 (A)+ (-765,432) (M)

Stato SK

Stato di correzione delle cifre che in SH hanno segnalato riporto con il set del TA di M nella cifra corrispondente. La somma di correzione avviene con: XA XM A diritto Digit 6 SK * LA . SK * NB * ( TE + TH ) \ . VY (CH * LM * TA), TA in M, setta NB . 83Diagramma Stato SK. Somma 234,679 (A)+ (-765,432) (M)

Stato SL

SL compie il trasferimento del risultato intero da A ad R. Il contenuto di A viene normalizzato con il numero di cifre della rotella decimali e l’aggiunta eventuale del segno meno. Il diagramma mostra : • • • Il trasferimento in R del risultato nel registro A con tutti i decimali, tramite il gate LA * ( SL + XL ) * TA \ . La normalizzazione su 2 decimali del risultato in A. Il gate SL * NC \ , blocca la richiusura di A sino al set di NC, lettura del TA in A, gate SL * LA * TA * MS \ . L’inserimento del bit TC, segno meno, tramite VA (ZC * NL * TC) in : A con SL * PA * VA * NC . R con SL * PA * VA * ZF \ * ZK \. Diagramma Stato SL . Somma 234,679 (A)+ (-765,432) (M)

Esempio 1. (table) Somma con segno concorde. VB=1 : -6,5 (M) + - 3,7 (A) = -10,2 (A) Stato Segnale Cifra Rip Cifra SH XM 1010 0110 XA 1110 1100 NE 0111 1111 XS 0011 >9 0101 XR 1111 1111 SK XM 0110 0110 XA 0011 0101 NE 0001 0011 XS 0100 0000 XR 0011 0000 VS 0100 0000 Rip. >9 Cifra Rip Descrizione 1000 1000 0000 0000 1000 0000 1000 1000 1000 +6 se riporto di cifra Risultato Risultato finale Esempio 2. Sottrazione con segno concorde. VB=0 e A>M : (table) 6 (M) – 14 (A) = Stato Segnale SH XM XA NE XS XR SK XM XA NE XS XR VS Esempio 3. (table) 8 (A) Cifra 0110 1101 0011 1000 0111 0110 1000 0000 1110 0000 0001 Rip. Cifra 0000 0111 1000 1111 >15 0000 0000 1111 0000 1111 0000 0000 Rip. Cifra Rip. Descrizione Complemento di A +6 se riporto di cifra Risultato Risultato finale Sottrazione con segno concorde. VB=0 e A<M : 14 (M) – 10,9 (A) = 3,1 (A) Stato Segnale Cifra Rip. SH XM 1111 XA 1001 NE 0111 XS 0001 XR 1111 >15 SK XM 0110 XA 0001 NE 0000 XS 0111 XR 0000 VS 1000 Cifra 1101 0000 1110 0011 1100 0000 0011 0000 0011 1100 Rip. Cifra 0111 1000 0000 1111 0000 0000 1111 0000 1111 0000 0000 Rip. Descrizione Complemento di M +6 se riporto di cifra Risultato Risultato finale In SH, se NM=0 (M>A), viene complementato M altrimenti A. In SK il riporto di cifra non viene considerato. Schema a blocchi algoritmo somma algebrica. (img)

Moltiplicazione

L’istruzione di moltiplicazione ha codice X6, X indica il registro del moltiplicando. Il registro A accumulatore implicito, contiene inizialmente il moltiplicatore. La moltiplica consiste in una ciclo di addizioni di M nell’accumulatore A.. Il numero di cicli è pari alla somma del valore delle cifre del moltiplicatore, numero contenuto in A all’inizio dell’istruzione. Il registro R, caricato con il complemento del moltiplicatore, funziona da contatore dei cicli di somma. Il riporto per >15 di R, set di NM, indica esaurimento della cifra attuale, R = 0, con il passaggio alla cifra seguente del moltiplicatore contenuto in R. L’ annullamento del contenuto di tutte le cifre del moltiplicatore in R, ossia esaurimento di tutte le cifre del moltiplicatore, procura il mancato reset di NF, causa della fine dei cicli di calcolo. Ricordando che ogni ciclo di calcolo, SF – SK comporta un ritardo di 1 Crt di A, M, R, con la fine ciclo su cifra, viene bloccato il ritardo di M, ottenendo l’avanzamento relativo del moltiplicando rispetto accumulatore (A) e contatore di cicli (R). In moltiplicazione e divisione , si utilizza la virgola di M per individuare il Crt di R da incrementare di 1 ad ogni ciclo SF - SK. In moltiplica l’incremento di R, avviene sul complemento del moltiplicatore. Il riporto determina la fine del processo della cifra ed il passaggio alla successiva

Stati preparatori

Nello stato SB, descritto tra le operazioni comuni a tutte le istruzioni, avviene l’eventuale trasferimento del moltiplicando in M. In SC, M moltiplicando, viene allineato sulla virgola. In SD, A moltiplicatore, viene allineato sulla cifra più significativa. In SE, viene scritto il TA in A indicante ultima cifra decimale del risultato. I particolari sono descritti con le operazioni comuni a tutte le istruzioni. VD ( SE * ZF * NH * TK \), blocca la riscrittura di A per i bit TE – TH, abilitando nel contempo la loro scrittura invertita in R. NK viene settato se A ha segno negativo. NL viene settato se M ed A hanno segno discorde. 87Diagramma. Moltiplicazione SE. Il diagramma evidenzia la conta a partire dalla virgola di A per l’inserimento del TA in A che indica l’ultima cifra decimale del risultato formattato. Diagramma SE Inizializzazione di A e R. Il diagramma permette la verifica di: • Allineamenti di A e M. • Trasferimento del moltiplicatore in R complementato a 15. • Azzeramento bit TE – TH di A. Diagramma SF. Stato iniziale registri di 765,432 (A) x 234,679 (M). Il ciclo SF, SG, SH, SK viene eseguito un numero di volte pari alla somma del contenuto delle cifre del moltiplicatore. Diagramma 234,679 (M) x 765,432 (A) . Cicli di stati. Il diagramma permette una verifica del numero di cicli SF – SK necessari all’esecuzione della moltiplicazione in esempio. Dato che: 88• La condizione di fine cifra NM permette la conta delle cifre del moltiplicatore che nel nostro esempio è 6. • La conta dei cicli non in NM fornisce il valore della cifra che sempre nell’esempio in sequenza è 765432. In moltiplicazione il decodificato ZF forza VB = 1, somma algebrica, per tutta l’istruzione.

Stato SF

SF non produce informazione utile in moltiplicazione, lo stato è mantenuto nel ciclo per evitare hardware aggiuntivo.

Stato SG

SG , in corrispondenza del Crt con virgola in M, somma 1 al contenuto di R. Il riporto su 15 di R, con la cifra a 0 pone fine ciclo settando NM. Si osserva che in R si trova il moltiplicatore, quindi il calcolo inizia con la cifra più significativa del moltiplicatore, Se la cifra è l’ultima, R ha tutti i caratteri con i bit TE – TH a zero, si ha la condizione di fine calcolo. Diagramma Stato SG finale. Il diagramma mostra l’azzeramento del moltiplicatore in R, il risultato finale in A, il moltiplicando in M ed il set di NM fine cifra che con R = 0 diventa fine calcolo.

Stato SH

SH, con NM a zero esegue la somma tra A (XA) e M (XM). Se cifra con riporto, si scrive il TA in M del Crt seguente. Dato che in SG, A è richiuso su K il TA in M è allineato con la cifra in A che ha causato il riporto. Diagramma Stato SH 2° Ciclo 234,679 (M) x 765,432 (A) . 89Il diagramma mostra in A 234,679, frutto del 1° ciclo di somma con M. Si osserva l’effetto del ritardo di R di 1 Crt in SG e l’analogo su A nel segnale di riciclo RA.

Stato SK

SK, ciclo di correzione con somma di 6 per le cifre con TA in M ad 1. Se riporto di cifra (NM=1), non viene fatto il normale shift tramite K, pertanto M a fine ciclo risulta anticipato di una cifra rispetto A ed R. Moltiplica per 10. Se in R i bit TE – TH sono tutti nulli non si resetta NF, condizione di fine operazione. Diagramma Stato SK 2° Ciclo 234,679 (M) x 765,432 (A) . Il diagramma mostra i 6 di correzione (NE) in corrispondenza del Crt con TA di M. La virgola in RM che si trova sul 3° Crt, evidenzia che il ritardo di M ricompone l’allineamento dei registri R, A, M dopo che tutti e 3 sono stati ritardati di 2 Crt, 1 Crt per ciclo di calcolo.

Stato SL

SL compie il trasferimento del risultato intero da A ad R. Il contenuto di A viene normalizzato con il numero di cifre della rotella decimali e l’aggiunta eventuale del segno meno. In SL, se in modo manuale, si attiva VZ che forza la stampa del risultato, prima del ritorno in SA. Diagramma. Moltiplicazione SL. 90Il diagramma mostra : • Il trasferimento in R del risultato in A con tutti i decimali. • La normalizzazione su 2 decimali del risultato in A. • VZ ( SL * ZC * HP \) che in manuale, tramite il set di NK, forza nel registro H il codice 84, istruzione di stampa A contenete il risultato.

Schema a blocchi algoritmo moltiplicazione

Divisione

L’istruzione di divisione ha codice X7, X indica il registro del divisore. Il registro A accumulatore implicito, contiene il dividendo. La divisione consiste in una ciclo di sottrazioni di M dall’accumulatore A. Il numero di cicli per ogni cifra del divisore dipende dal valore di A e M, il passaggio a nuova cifra si ha con A < M. L’allineamento avviene sulla cifra più significativa dei 2 registri, quindi se il numero di cifre intere è diverso, i 2 numeri, in partenza non sono allineati sulla virgola ed i confronti non considerano la virgola. Per ogni calcolo di cifra a fine ciclo, si ha l’arretramento relativo dell’accumulatore A , dividendo, rispetto il divisore M. ciò corrisponde a una moltiplicazione per 10 del dividendo. VB in divisione durante i cicli di sottrazione è a 0. VB = 1, si ha solo in SK * ZC * NM, stato SK e fine ciclo calcolo cifra. Con NM = 1, fine ciclo calcolo cifra, il sommatore non opera e si ritardano A ed R di 1 Crt rispetto il divisore contenuto in M. Il registro R funziona da contatore dei cicli di sottrazione. Per ogni cifra, a fine ciclo cifra anche il registro R viene ritardato di 1 Crt rispetto M. Si ottiene il passaggio al calcolo della cifra seguente. La cifra di R, agente come indicatore del Crt contatore di cicli di sottrazione, è quella corrispondente alla virgola in M. La fine del calcolo è data dalla corrispondenza sullo stesso Crt del TA in A, indicante l’ultima cifra decimale , con il Crt di M contenente la virgola. Il diagramma mostra la sequenza degli stati esecutivi a partire da SD, compresa la stampa forzata da VZ del risultato. Si nota che la conta dei cicli SF – SK, esclusi quelli in NM, anticipa il risultato. Diagramma Ciclo SF – SH e Stampa risultato -765,432 : 23,4679 = -32,61.

Stati preparatori

Gli stati preparatori eseguono operazioni descritte tra le comuni a tutte le istruzioni. Nello stato SB, si trasferisce il divisore in M. In SC viene allineato M, in SD A , entrambi sulla cifra più significativa. In SE, WD scrive il TA in A, indicante ultima cifra decimale del risultato. 93NK viene settato se A ha segno negativo. NL viene settato se M ed A hanno segno discorde. Il diagramma mostra lo stato SE con la conta per la scrittura del TA in A sull’ultima cifra decimale. L’allineamento di A ed M, ha portato la loro cifra più significativa sul 1° Crt dopo il gap. Diagramma Stato SE.

Stato SF

SF verifica se A > M, in caso opposto, A < M, si ha il set di NM. NF se set a fine stato indica fine del calcolo, verificando che il Crt con la virgola in M anticipa il Crt con il TA in A : • SF * ZF * PO * TA * LA TA in A indicante ultimo decimale, setta NF. • SF * ZF * LM * TD Virgola in M resetta NF. Se la virgola di M non precede il TA in A, NF viene resettato, il calcolo continua con una nuova cifra. Se la virgola di M precede il TA in A, NF resta set, il calcolo termina con il passaggio da SF a SL . Diagramma Stato SF. Fine 1° Ciclo. Set NM. A = 61395 M = 234679 . A < M. Il diagramma precedente, mostra lo stato SF al termine del 1° ciclo SF – SK. Il set di NM avviene con: A = 61,395 e M = 23,4679. L’esito del confronto, A<M, è dovuto al fatto che l’inizio del ciclo di sottrazioni, vedeva le centinaia di A corrispondenti alle decine di M. Nel computo la virgola non è considerata. NF settato dal TA in A e resettato dalla virgola TD in M, indica che il ciclo SF – SK essendo NM = 1, continua con una nuova cifra.

Stato SG

94SG , con NM = 0 , in corrispondenza del Crt con virgola in M, somma 1 al contenuto di R, sino a quando A si mantiene maggiore di M. Indipendentemente da NM si ha il ritardo di 1 Crt tramite riciclo di R su K.

Stato SH

In SH, con NM = 0 si ha il 1° passo di sottrazione di M da A, con somma di M al complemento di A. Indipendentemente da NM si ha il ritardo di 1 Crt tramite riciclo di A su K. Il riporto di cifra si ha nel solo caso di >15. Diagramma Stato SH . Ultimo ciclo

=Stato SK

SK, con NM = 0, si ha un ciclo di correzione per tutti i Crt in A che sono in corrispondenza con un Crt in M con TA = 1. Se riporto di cifra (NM=1), non viene fatto il normale shift tramite K, pertanto M a fine ciclo risulta anticipato di una cifra rispetto A ed R. Moltiplica per 10. Diagramma Stato SK . Ultimo ciclo di correzione. Il diagramma seguente mostra lo stato dei registri durante lo stato SF finale del ciclo di calcolo. Il contenuto di R, 3261 anticipa il risultato. In A, 143781 il resto. La virgola in entrambi i registri verrà posta in SL. NF è set in quanto la virgola in M anticipando il TA in A non lo resetta. Diagramma Stato SF finale. A = 143781 Resto. R = 3261 Virgola.

Stato SL

In SL, avviene lo scambio dei registri A ed R. Lo scambio porta il risultato intero in A ed il resto in R. Il contenuto di A viene normalizzato con l’aggiunta eventuale del segno meno. In SL, se in modo manuale, si attiva VZ che forza la stampa del risultato, prima del ritorno in SA. Il diagramma presenta la scrittura formalizzata con segno e virgola nei registri : A Risultato -32,61. R Resto 0,143781. Diagramma Stato SL finale. A = -32,61 Risultato. R = 0,143781 Resto.

Schema a blocchi algoritmo divisione