Rozumiem, co oznacza system 32- lub 64-bitowy. więc zasadniczo wszystkie rejestry lub długość słowa są 32 lub 64-bitowe.W jaki sposób jeden bajt pamięci jest dostępny dla procesora w 32-bitowej pamięci i 32-bitowym procesorze?
Dla uproszczenia, weźmy system 32-bitowy i powiedzmy, że piszę program w C., jeśli deklaruję typ int, powiedz "int a = 5;" wówczas lokalizacja pamięci o długości jednego słowa jest zarezerwowana dla var a. więc gdy kiedykolwiek chcę uzyskać do niego dostęp, mogę to zrobić za pomocą adresu słowa dla tej lokalizacji pamięci.
Ale powiedz, że mam 4 znaki "char a, b, c, d;" ponieważ jest to jeden bajt, każdy z nich jest umieszczony w jednym słowie, więc co zrobić, jeśli chcę uzyskać dostęp tylko do char b? (mówiąc, że pamięć jest adresowana bajtowo) teraz powiedzieć, że b jest trzecim bajtem w słowie ... ., jak to się dzieje w autobusie? nie jest trzecim bajtem podłączonym do linii od 17 do 24 w autobusie? co dzieje się z pozostałymi 24 liniami, gdy uzyskuje się tylko dostęp do b?
Sprawdź język urządzenia, asembler, dla danego procesora, szczególnie części dotyczące adresowania pamięci i rejestrów procesora. – theglauber
@deepak, Na platformach 32-bitowych, które obsługują adresowanie bajtów, możliwe jest zapisanie jednego bajtu do pamięci bez pozostałych trzech bajtów (zgodnie z wyłączonymi sygnałami wyłączenia bajtów). –
@EricZ, teraz co by się stało, gdyby bajt, którego chcę, to drugi bajt (liczony od zera) w pamięci? zwykle kiedy uzyskuję dostęp do słowa z pamięci, drugi bajt wyląduje pomiędzy pozycją bitu 23 - 16 rejestru. Ale w tym przypadku będzie musiał wylądować w pozycji 7 - 0. To mnie myli, ponieważ myślałem, że bit 0 z pamięci jest podłączony do wylądowania w bicie 0 rejestru, a bit 31 do bit 31. Myślałem, że to wszystko w obwodzie, więc w jaki sposób bit, który powinien wylądować na pozycji bitu 16, ląduje na pozycji 0 podczas dostępu do bajtu? – deepak