Martin JS SW Mosaic 15. 9. 2023 11:45 15. 9. 2023 14:18

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í.