Regnearter

Fra Holstebro HTX Wiki
Skift til: navigering, søgning

For at regne enkle regnestykker med sproget JAL bruger man de for-definerede operatorer: + - / * % ! & | ^ < < == != < = og =. Med dem kan man det meste fra at addere og subtrahere til at rode med de enkelte bits i en byte og sammenligne størrelse. En komplet liste over operatornes funktion ses nedenfor.

Operator Prioritet Betydning Venstre argument Højre argument Resultat Eksempel
! 5 Enkelt not (inverter) bit bit pin_a0 = ! pin_ao
! 5 Enkelt not (inverter) byte byte inv_cs = ! cs
+ 5 Enkelt plus (fortegn) byte byte val = +33
- 5 Enkelt minus (fortegn) sbyte sbyte val = -33
* 4 multiplikation byte byte byte val = val * 10
/ 4 division byte byte byte val = val / 10
% 4 modulus byte byte byte val = val % 10 (giver resten ved en division)
+ 3 plus byte byte byte val = val + 10
- 3 minus byte byte byte val = val - 10
<< 2 skift til venstre byte byte byte val = val << 3 (skifter bit-mønsteret 3 pladser til venstre)
>> 2 skift til højre byte byte byte val = val >> 2 (skifter bit-mønsteret 2 pladser til højre)
> 2 større end byte byte bit if val > 10 then
< 2 mindre end byte byte bit if val < 10 then
>= 2 større end eller lig med byte byte bit if val >= 10 then
<= 2 mindre end eller lig med byte byte bit if val <= 10 then
== 2 er lig med byte byte bit if val == 10 then
!= 2 er ikke lig med byte byte bit if val != 10 then
& 1 and bit bit bit if (val > 2) & (val < 10) then
& 1 and byte byte byte val = val & 0b1111_0000 (Masker de 4 høje bit, og sætter de 4 lave bit til 0)
| 1 or bit bit bit if (val == 10) | (val == 20) then
| 1 or byte byte byte val = val | 0b0000_0011 (sætter de to lave bit til høj, resten uændret)
^ 1 xor bit bit bit pin_a0 = pin_a1 ^ pin_a2 (får to input til at give XOR funktion på et tredje)
^ 1 xor byte byte byte val = val ^ 0b0000_1111 (inverterer de 4 lave bit og lader de 4 høje stå uændret)

Hvilke begrænsninger er der når man skal regne noget i JAL?

Som nævnt før arbejder man kun med heltal når man bruger variabler af typen byte. Det giver derfor nogle begrænsninger for hvilke regnestykker man kan lave. Dividerer man fx 6 med 4 får man som bekendt 1,5, men i JAL vil facit i stedet blive rundet ned til 1. Man skal derfor være opmærksom på, hvilke værdier man regner med.