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