Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 6 cze 2025, o 00:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 27 wrz 2017, o 22:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1978
Lokalizacja: Lipsko
Pomógł: 125

Poszukiwałem właśnie czegoś i dosłownie przez przypadek wpadła mi kątem oka tabelka z prezentacją przesunięć bitowych. Coś mi się nie zgadzało i aż musiałem do BB zajrzeć, bo nie dowierzałem :)

Obrazek

Czy aż takie różnice programowe są w C między AVR, a PC czy to po prostu wpadka... ???

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2017, o 23:13 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27406
Lokalizacja: Szczecin
Pomógł: 1043

Nie może to działać inaczej w C na PC - tu raczej się komuś na wikipedii rypnęło coś ... ;)

tzn być może ktoś kto to opisywał robił własne doświadczenie i wyszło mu że przy przesunięciu w prawo wciągane są jedynki ;) no ale musiał to robić na liczbie ze znakiem (ujemnej) wtedy zawsze w C - z prawej będzie wciągany bit znaku czyli właśnie jedynka.

Tymczasem opisał to wszystko że tak powiem "krzywo" ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2017, o 23:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1978
Lokalizacja: Lipsko
Pomógł: 125

No z moją praktyką też się to gryzło niemniej dało do myślenia, bo jeszcze za czasów commodore i jego asemblera podczas przesunięcia (zarówno w lewo jak i w prawo) był na ostatnią pozycję wciągany bit przepełnienia C lub V już nie pamiętam, ale chyba C, bo go się zazwyczaj zerowało przed rozpoczęciem obliczeń :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2017, o 05:42 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

Proponuję zajrzeć na anglojęzyczną wersję tej strony i zapewne wszystko się wyjaśni. Mam na myśli różnicę pomiędzy unsigned (logical) shift right oraz signed (arithmetic) shift right (to, o czym pisał wcześniej kolega Mirek). Niedopatrzeniem ze strony autora polskiego artykułu na Wikibooks jest to, że nie uwzględnił tych dwóch rodzajów przesunięć.

W języku C przesunięcie jest zapisywane zawsze tak samo, a rodzaj przesunięcia jest dobrany przez kompilator i zależny od typu danych, na których wykonywana jest operacja. Natomiast w ASM są to różne instrukcje (w AVR assembler to LSR i ASR) i to programista musi dobrać odpowiednią, w zależności od tego, co chce osiągnąć.

_________________
AVR-GCC - dane w pamięci FLASH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2017, o 10:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1978
Lokalizacja: Lipsko
Pomógł: 125

W sumie podobnie (w sensie różne rodzaje rolowania) było w ASM na commodorki -ASL i LSR - to przesunięcia z uzupełnieniem zwolnionego bitu przez zawartość znacznika, a ROR i ROL to po prostu karuzela na bajcie :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2017, o 16:00 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2596
Pomógł: 129

Chyba każdy asembler ma tego typu instrukcje. Na Zx Spectrum (z80) używało się tego nagminnie do przesuwania napisów itp.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2017, o 16:14 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8615
Pomógł: 338

bo przecież wszystkie procki mają się tak samo i są rządzone tymi samymi prawami panowie ,
a róznice w assemblerze - nazwy , rejestry narzuca producent :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO