ForthLogic inst prog H P.1.2 120113.pdf - F&F
ForthLogic inst prog H P.1.2 120113.pdf - F&F
ForthLogic inst prog H P.1.2 120113.pdf - F&F
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Sterowniki <strong>prog</strong>ramowalne MAX Logic<br />
> 32 124 < .<br />
‐1 (OK)<br />
> 2.4e‐2 124.904 F< .<br />
‐1 (OK)<br />
> 1.23 56.5678 F> 34 35 < AND .<br />
0 (OK)<br />
> ‐1 DUP NOT . NOT NOT .<br />
0 ‐1 (OK)<br />
><br />
Do logicznych operacji na wartościach służą również słowa LSHIFT i RSHIFT. Dokonują one operacji przesunięcia bitowego<br />
ekwiwalentu dwójkowego wartości ze stosu danych. Przesunięcie bitowe jest to operacja na liczbach w systemie<br />
dwójkowym polegająca na przesunięciu wszystkich cyfr o n pozycji w lewo lub prawo. Jest to działanie powszechnie<br />
stosowane w informatyce. Najczęściej przesunięcie wykorzystuje się do szybkiego mnożenia/dzielenia przez liczbę 2 i jej<br />
potęgi, do sekwencyjnego testowania wartości poszczególnych bitów lub do logarytmicznych mechanizmów tworzenia<br />
masek bitowych, które są potrzebne przy ustalaniu pojedynczych bitów w logicznych operacjach.<br />
Słowo LSHIFT zdejmuje ze stosu danych dwa górne znaczenia ‐ pierwsze jako liczbę pozycji, o którą przesuwamy bity, a<br />
drugie jako wartość, na której dokonujemy logicznego przesunięcia bitowego w lewo. Na najmłodsze pozycje dopisywane<br />
są bit o wartości zero, natomiast najstarsze bity są tracone. Na stos danych kładzie się wynik wykonania, czyli nowa<br />
wartość, jaką otrzymaliśmy w wyniku przesunięcia bitowego.<br />
Słowo RSHIFT zdejmuje ze stosu danych dwa górne znaczenia ‐ pierwsze jako liczbę pozycji, o którą przesuwamy bity, a<br />
drugie jako wartość, na której dokonujemy logicznego przesunięcia bitowego w prawo. Na najstarsze pozycje dopisywane<br />
są bit o wartości zero, natomiast najmłodsze bity są tracone. Na stos danych kładzie się wynik wykonania, czyli nowa<br />
wartość, jaką otrzymaliśmy w wyniku przesunięcia bitowego.<br />
LSHIFT A,B ‐‐‐> (A (A >> B) logiczne przesunięcie w prawo bitów wartości B o A pozycji<br />
Przykład operacji przesunięcia logicznego:<br />
> 1 1 LSHIFT .<br />
2 (OK)<br />
> 2 1 RSHIFT .<br />
1 (OK)<br />
> 1 20 LSHIFT .<br />
1048576 (OK)<br />
> ‐1048576 20 RSHIFT .<br />
4095 (OK)<br />
><br />
4.5 STRUKTURA STEROWANIA<br />
W języku <strong>ForthLogic</strong> jest tylko jeden typ struktury sterowania procesem wykonania algorytmu. Jest to operator<br />
warunkowy. Operator warunkowy jest budowany przy pomocy słów IF, ELSE i THEN. Tworzą one czytelny schemat<br />
warunkowego wykonywania słów zawartych miedzy nimi. Słowa te możemy wykorzystać tylko podczas definicji nowego<br />
słowa. Same słowa IF, ELSE i THEN nie mają samodzielnego znaczenia. Razem wyznaczają odpowiednie pola dla słów,<br />
które maja być wykonane przy zachodzących warunkach. Całe wyrażenie operatora ma następujący schemat: IF ELSE THEN. Słowo IF zdejmuje element ze szczytu stosu i rozpatruje go jako wartość logiczną ‐ jeżeli<br />
jest to PRAWDA (jakakolwiek wartość nie zerowa), to wykonywane są słowa z pola , czyli słowa znajdujące się<br />
między IF a ELSE; jeżeli FAŁSZ (równa się zeru), to wykonywane są słowa z pola , czyli słowa znajdujące się między<br />
ELSE a THEN.<br />
Istnieje szczególna postać operatora warunkowego. Polega na tym, że pola wraz ze słowem ELSE może nie być.<br />
Wtedy operator warunkowy ma postać skróconą IF THEN. Jeżeli element logiczny zdjęty ze stosu przed<br />
‐ 22 ‐