Mám v SW odkazy na adresy ( funkce ADR() ) a potřebuji je zkontrolovat.
Proměnná je na adrese %RL356. Pointer má hodnotu 393572 (16#60164). Jak se dají tyto hodnoty porovnat ?
Děkuji
Odpovědi 1
            
                
                    
                                            M.B.
                                    
                
                    
                    15. 9. 2023 14:18
                
            
            
            
        
    Adresa pointeru je ofset v lineárním paměťového prostoru. Ten se skládá ze zóny registrů X, Y, S, D a R. Adresa prvního registru %R0 je tedy posunutá o velikost zón X, Y, S a D. Adresa se liší podle řady centrální jednotky a lze ji získat funkcí viz níže:
FUNCTION Pointer_R0 : UDINT
  VAR
    p : UDINT;
  END_VAR
  
  BEGIN
  {ASM}
  LD __offset(%R0)
  WRX p
  {END_ASM}
  
  Pointer_R0 := p;
END_FUNCTION
Vaše odpověď
Pro vložení odpovědi je nezbytné být přihlášený. Pokračujte na přihlášení.
 Čeština