Ads_700x200

Pokazywanie postów oznaczonych etykietą avr c rol ror rolowanie. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą avr c rol ror rolowanie. Pokaż wszystkie posty

wtorek, 9 października 2012

ROR & ROL'owanie bitów - wersja wojskowa

Witam,

W związku ze sporą ilością pytań jakie dostaję co jakiś czas na maila, chciałbym pokazać sposób w jaki można dokonywać tzw "ROL'owania" bitów w ramach jednego bajtu lub słowa, w najprostszy sposób w języku C. Naturalnie dodam, że nie chodzi tutaj o zwykłe przesuwanie bitów w prawo lub lewo, ponieważ wtedy wsuwają się nam zera od prawej lub lewej. Mam tu na myśli rolowanie, czyli jeśli np bajt przewijamy w lewo to najstarszy bit, który niejako wypada z bajtu, trafia z powrotem do niego ale na pozycję najmłodszego bitu. Co ma z tym wspólnego wersja wojskowa ? ;) widzicie te pagony odpowiadające randze starszego sierżanta ? .... jak za chwilę się przekonasz, wzrokowo mają one sporo wspólnego z prezentowanym kodem źródłowym. Nadmienię od razu, że w samym asemblerze można o kilka bajtów odchudzić kod, w porównaniu do tego, który zostanie wygenerowany przez kompilator C, ale komu by się chciało bawić wciąż we wstawki asemblerowe mając do dyspozycji wygodny C a tym bardziej z tak błahego powodu ...