Vai al contenuto

ANElet

AR1 E AR2

Recommended Posts

ANElet   
ANElet

buon giorno,

 

qualcuno sa spiegarmi cosa serve questa istruzione scritta in un FB? l'ho trovata in un software che un cliente mi ha passato per fare un lavoro, siccome non sono molto ferrato sul discorso registri indirizzi volevo sapere se qualcuno poteva aiutarmi.

 

      LAR1  P#DIX132.0
      TAR2                       // MULTIINSTANCE CALL OFFSET
      +AR1

 

      L     0
      T D [ AR1 , P#0.0 ]        

      T D [ AR1 , P#4.0 ]          

 

grazie anticipatamente

Condividi questa discussione


Link discussione
Condividi su altri siti
attiliovolpe   
attiliovolpe

Indirizzamento indiretto,

LAR1 carica inAR1 il valore del puntatore

TAR2 trasferisce il contenuto di AR2 in ACCU1 

+AR1 aggiunge il contenuto di ACCU1 ad AR1 e carica il valore in AR1

 

Per la seconda parte trasferisci i primi 4 bytes del puntatore in AR1 e poi la seconda parte del puntatore, altri 4 bytes in AR1; non ne sono certo ma dovrebbe essere riferito alla data e ora di sistema.

 

Ho provato a spiegare cio che ho capito dovendo interpretare in passato una funzione di inizializzazione simile, attendiamo il parere di chi è più esperto.

Condividi questa discussione


Link discussione
Condividi su altri siti
ANElet   
ANElet

Grazie per la risposta 

 

anche io ho utilizzato in passato l'indirizzamento indiretto di registri utilizzando solo AR1 senza grossi problemi, ma senza mai utilizzare AR2;

infatti il mio dubbio si focalizza soprattutto su quel "TAR2"

perchè va scritta??? A cosa serve?

ho letto su parecchi forum che l'AR2 viene modificato quando sono presenti delle multiistanze nel blocco richiamante (FB) altrimenti di norma viene settato P#0.0 di modo che punti alla prima variabile del blocco dati di istanza

 

Non so se mi sono spiegato bene; in parole povere non capisco l'utilità di dover inserire TAR2 all'interno del codice per poi andarlo a sommare all' AR1.

 

faccio presente che questa istruzione è scritta all'interno di un FB, ed è ripetuta in più segmenti, però l'FB in questione all'interno della sua interfaccia non ha dichiarato nessun'altro blocco dati di istanza per cui secondo me non esiste una multiistanza in questo FB o sbaglio?

 

grazie e spero di non aver creato confusione  

Condividi questa discussione


Link discussione
Condividi su altri siti
0.0   
0.0
    TAR2                       // MULTIINSTANCE CALL OFFSET
    +AR1 

 

Carica il puntatore AR2 nell'accumulatore 1, +AR1 somma l'accumulatore 1 ad AR1.

Quindi viene sommato AR2 ad AR1.

 

Perchè venga fatto dipende dal programma.

Condividi questa discussione


Link discussione
Condividi su altri siti
attiliovolpe   
attiliovolpe
Quote

Carica il puntatore AR2 nell'accumulatore 1

 

Ok ma quale puntatore, visto che non c'è indirizzamento?

 

Quote

 LAR1  P#DIX132.0

 

Mi spiego meglio, questa istruzione carica il puntatore in AR1   "P#DIX132.0", in AR2 in questo caso è stato caricato in precedenza o a quale puntatore fa riferimento?

 

  L     0
      T D [ AR1 , P#0.0 ]        
      T D [ AR1 , P#4.0 ]      

Queste istruzioni sono riferite alla data di sistema?

Condividi questa discussione


Link discussione
Condividi su altri siti
DesmoGiec   
DesmoGiec

Se vuoi sapere la funzione dell'operatore, già ti è stata spiegata.

Se vuoi sapere come funziona, credo sarebbe opportuno mettere il codice rimanente.

La sola porzione non dice nulla ;)

Condividi questa discussione


Link discussione
Condividi su altri siti
attiliovolpe   
attiliovolpe

E' tutto riferito al codice riportato sopra nel primo messaggio.

 

 LAR1  P#DIX132.0
      TAR2                       // MULTIINSTANCE CALL OFFSET
      +AR1
 
      L     0
      T D [ AR1 , P#0.0 ]        
      T D [ AR1 , P#4.0 ]          

 

@0.0 ha scritto:

 

Quote

Carica il puntatore AR2 nell'accumulatore 1

 

Vorrei capire in questo caso è stato definito in precedenza quale puntatore in AR2 o quale puntatore viene caricato in AR2?

Condividi questa discussione


Link discussione
Condividi su altri siti
DesmoGiec   
DesmoGiec

@attiliovolpe mi riferivo ad ANElet!

Proprio perchè il codice non è completo noi non possiamo arrivare a conclusioni! :-D

 

Condividi questa discussione


Link discussione
Condividi su altri siti
attiliovolpe   
attiliovolpe

@ANElet potresti postare qualche altro riferimento per la parte di codice che hai postato?

 

Magari puoi postare l'intera FB e capiamo cosa fa

Condividi questa discussione


Link discussione
Condividi su altri siti

Registrati o accedi per inserire messaggi

Devi essere un utente registrato per lasciare un messaggio. La registrazione è GRATUITA.

Crea un account

Iscriviti alla nostra comunità. È facile!

Registra un nuovo account

Connettiti

Hai già un account? Connettiti qui

Connettiti adesso


×