Kurs Zaawansowany S7 zajęcia dodatkowe, czwartek, zadanie A Proponowane rozwiązanie: FC61 // inicjalizacja zmiennych L 0 T #liczba_bitow // p tla LOOP L 16 // Ilo uruchomie p tli et: T #licznik_petli // Licznik = 16, 15, ..., 1 + -1 // Warto przesuni cia // dla funkcji SRW: 15,14, ..., 0 L #testowane_slowo // Accu1: testowane_slowo ( co ) SRW // Accu2: licznik_petli-1 // ( o ile? ) AW W#16#1 // Maska: 2# 0000 0000 0000 0001 JZ end // Je eli testowany bit = 0 // to nie zwi kszaj liczby bitow L #liczba_bitow // Je eli aktualnie testowany + 1 // bit jest w stanie wysokim, T #liczba_bitow // to zwi ksz liczb bitów o 1 end: L #licznik_petli LOOP et OB1 CALL FC61 testowane_slowo := MW10 liczba_bitow := MW20 Zadanie zostało rozwiązanie w oparciu o ideę przesuwania odpytywanej wartości o jeden bit w prawo w każdym uruchomieniu pętli LOOP. Alternatywnie można by przesuwać maskę w lewo. wersja: 080210 INTEX Centrum Szkoleniowe Systemów Automatyki strona 3/3