16.06.2015 Views

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

SHOW MORE
SHOW LESS

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 ‐

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!