O nas
Strona główna » 3. Jak jest różnica między typami "Constant" i "K Constant"?

3. Jak jest różnica między typami "Constant" i "K Constant"?

Główna różnica polega na innym zakresie wartości dla tych typów.

Różnicę tę można wyjaśnić na poniższym przykładzie kodu programu, która posiada długość 32 bity:

ADD   K   100   ; 1.
Codeline of instruction
          R   100  
; 2.Codeline of instruction
          R   101  
; 3.Codeline of instruction

Wszystkie dane dotyczące linii kodu przechowywane są w 32 Bitach (4 bajty). Pierwsza linia kodu wymaga użycia 18 bitów na instrukcję (np. ADD) typ zmiennej (K, R, I,...). Pozostałe 14 bitów – w przypadku, gdy typem jest K – może być użyte na wartość "K constant". Dlatego też zakres wartości "K constant" wynosi 0..16383.

"K constant" jest oznaczona kodem typu zmiennej (bity 14 i 15 są w stanie wysokim) i dlatego też może być użyta zamiast np. rejestru w instrukcjach, które go wymagają.

Uwaga: "K Constant" może być użyta jako parametr w instrukcjach, które wymagają podania typu zmiennej.

Niektóre instrukcje akceptują tylko "Constants" w kolejnych liniach instrukcji. Instrukcja LD jest właśnie takim przykładem:

LD   R   200                   ;Load register 200
            
2147483647     ;with the value 2147483647

Ponieważ druga linia instrukcji LD nie pozwala na podanie jedynie wartości, to całe 32 bity mogą być wykorzystane na wartość z zakresu (-2'147'483'648..2'147'483'647) tej stałej.

Uwaga: Stała typu "Constant" nigdy nie może być wykorzystana w pierwszej linii instrukcji I nie może być przekazana jako parametr wywołania funkcji FB.



do góry  do góry

 
Copyright © 2012 SABUR