treemezzo Inserito: 13 marzo 2011 Segnala Share Inserito: 13 marzo 2011 Ciao .. ho un piccolo quesitodevo spostare da una db 4 byte tipo array of byte in un'area di memoria (es md400).Con l'istruzione Move BLK posso prendere consecutivamente i 4 byte ma sono costretto a muoverli in un'altra area di tipo array!!! per risolvere il problema ho fatto lo spostamento dati con 4 move byte per byte nelle aree mb400 mb401 mb402 mb403Ho usato quindi 4 move... avete idea se si possa fare in qualche altro modo?? magari con un'unica istruzione?grazie Link al commento Condividi su altri siti More sharing options...
amed Inserita: 13 marzo 2011 Segnala Share Inserita: 13 marzo 2011 Mi sembra che con "Move BLK" la destinazione può essere solo in DB e in varibili locali "L" quindi non puoi usarla. Con un'unica istruzione di Move doppia word puoi trasferire in una doppia word destinazione di Merker (es: MD40) i 4 byte sorgente (es: DB1.DBD0). Ciao Link al commento Condividi su altri siti More sharing options...
treemezzo Inserita: 13 marzo 2011 Autore Segnala Share Inserita: 13 marzo 2011 Infatti, ma correggimi se sbaglio, questo se parliamo di una db dove ogni variabile è una DWORD.... quindi posso spostare a piacimento la DB1.DBD0 nella MD40 e viceversa!! se io ho un array di byte es. DB1.DBB0 per essere piu' precisi "data_db".buffer[0] - "data_db".buffer[1] - "data_db".buffer[2] - "data_db".buffer[3] , in una DB, come li sposto questi 4 in sequenza contemporaneamente con una singola istruzione ...nella MD40??? Link al commento Condividi su altri siti More sharing options...
amed Inserita: 13 marzo 2011 Segnala Share Inserita: 13 marzo 2011 Non è vero che nelle DB ogni variabile è un doppia word. Le variabili possono essere bYte (DB1.DBB1), word (DB1.DBW4 che è formata dai byte 4, 5), doppie word (DB1.DBD10 formata dai bite 10, 11, 12, 13) forse ci sono anche le doppie word lunghe, formate cioè da 8 byte). Alle altre domande non so risponderti. Ciao Link al commento Condividi su altri siti More sharing options...
treemezzo Inserita: 13 marzo 2011 Autore Segnala Share Inserita: 13 marzo 2011 (modificato) Sicuramente mi sono espresso male... sicuramente in una db si possono avere variabili di diverso tipo, ma io sto facendo riferimento alle variabili di tipo array dove devi necessariamente definire di che tipo devono essere.. tutto qui ... comunque grazie x (=per) avermi risposto.. Modificato: 13 marzo 2011 da Livio Migliaresi Link al commento Condividi su altri siti More sharing options...
baltimora Inserita: 14 marzo 2011 Segnala Share Inserita: 14 marzo 2011 (modificato) Hai provato a muovere i dati in blocchi dati, funzioni, organizzativi ecc che non siano indirizzabili soltanto simbolicamente?Il soft controlla che i dati che (muovi) da una parte all'altra siano sempre dello stesso tipo. Infatti se vuoi muovere una variabile di tipo string in un array di tipo byte, non lo puoi fare (almeno credo, non ho provato) se hai l'indirizzamento simbolico attivo in quel blocco. Al contrario se hai tolto la spunta su indirizzabile solo simbolicamente.Ciao Modificato: 14 marzo 2011 da baltimora Link al commento Condividi su altri siti More sharing options...
treemezzo Inserita: 17 marzo 2011 Autore Segnala Share Inserita: 17 marzo 2011 non ho provato.... faccio questo test e faccio sapere.cia Link al commento Condividi su altri siti More sharing options...
claudiociem Inserita: 20 dicembre 2011 Segnala Share Inserita: 20 dicembre 2011 scusate se riesumo questo topic, mi ritrovo però con lo stesso problema...sto utilizzando la comunicazione via ISO-on-TCP tra 300 e 1200, che mi obbliga ad utilizzare nei db di tx e rx, la stessa identica struttura, e cioè un array di byte, nel mio caso circa 150 o giù di li.Il problema dal lato 300 non sussiste, perchè come ho sempre fatto, indipendentemente da come è strutturato il db, utilizzo a piacimento le variabili al suo interno, indipendentemente se sono state dichiarate come byte, word...Purtroppo nel 1200 le cose si complicano, l'accesso alle variabili del db non utilizzando rigidamente la struttura, mi porta ad avere degli avvisi in fase di compilazione, e cioè:"L'indirizzo nel blocco dati non viene occupato da una variabile", anche se in realtà non è vero, perchè se dichiaro .DBW10 sarà ovviamente (credo) .DBB10 e .DBB11.Se scrivo invece semplicemente un byte in un byte, tutto va bene.Ovviamente non posso cambiare la struttura dei db di comunicazione, qualcuno per caso sa consigliarmi un altro sistema per aggirare questa rogna?p.s. ho già fatto i seguenti tentativi:1) copiare il blocco con Move_blk su un altro blocco ma con struttura differente (word) ma stessa lunghezza, e non me lo permette2) ho provato a disabilitare l'indirizzamento simbolico ma senza successo...il blocco non è neppure ottimizzatograzieClaudio Link al commento Condividi su altri siti More sharing options...
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