paopaura Inserito: 23 aprile 2006 Segnala Inserito: 23 aprile 2006 Dovrei fare delle operazioni di addizione e sottrazione con doppia word.Il mio problema sta che il risultato puo essere sia un numero positivo che negativo (è in appoggio ad un contatore up/down)Esempio se faccio 0-1 mi da come risultato 9999 invece che f001 (dove f sarebbe se non sbaglio il segno).Nessun problema se invece sto nel campo dei numeri positiviRiuscite mica ad illuminarmi
Dario Valeri Inserita: 23 aprile 2006 Segnala Inserita: 23 aprile 2006 ciaodipende da come guardi la doppia word.devi guardarla com "dw con segno", ad ogni modo a livello binarioil numero risultante e' lo stesso . (e' un fatto di interpretazione)comunque in bcd senza segno 0-1 da appunto 9999in bcd con segno invece , in caso di numeri negativi, la cifra piu'a sinistra viene usata per il segno. (anche in decimale)ciaodario
paopaura Inserita: 24 aprile 2006 Autore Segnala Inserita: 24 aprile 2006 non mi è chiaro come si faccia pero a dirgli di lavorare con segno...
batta Inserita: 24 aprile 2006 Segnala Inserita: 24 aprile 2006 Se non ricordo male negli Omron, per sapere se il risultato di un calcolo in BCD è negativo, si interroga il flag "carry".Così su due piedi non ti so dire di più, ma se leggi il manuale sicuramente trovi tutte le istruzioni.
RickyM Inserita: 24 aprile 2006 Segnala Inserita: 24 aprile 2006 Confermo quello che dice Batta, se il flag di carry è on, il risultato è negativo se lo sottrai a zero diventa positivo.Ciao
Claudio Negro Inserita: 25 aprile 2006 Segnala Inserita: 25 aprile 2006 flag di carry per plc serie cs o cj è il bit CF004, mentre per le serie precedenti è il bit 255.04Ovviamente se usi le nuove serie, hai i calcoli con segno, altrimenti vale quanto detto sopra...Ciao
orsoblu Inserita: 27 aprile 2006 Segnala Inserita: 27 aprile 2006 (modificato) Ciao, l'operazione che ti interessa è illustrata come esempio dell'istruzione SUB/SUBL o SBB/SBBL presente sul manuale di programmazione che puoi trovare sul sito uficiale di omron.In pratica si tratta di effettuare una doppia sottrazione con la seguente procedura:Prima sottrazione A-B=CControllo carry a 1 esegue 0(zero)-C=C in quanto nella prima operazione il valore C negativo è il numero complementare del risultato.alzare un flag a fine operazione attivato dal carry a 1 che si autoritiene fino a che il bit di esecuzione dell'operazione è attivo per indicare che il risultato è negativo.Tutto quanto deve essere fatto in una unica networkCon il flag puoi effettuare un ANDW in modo di far figurare il numero negativo con il sistema dell'ultima cifra a 1 o F. Modificato: 27 aprile 2006 da orsoblu
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora