字對齊 半字對齊 位元組對齊的理解

2021-09-06 14:31:49 字數 837 閱讀 5668

一般情況下字為32位(4位元組)、半字為16位(2位元組)、位元組為8位(1位元組)。

大多數計算機使用位元組(8位的資料塊)作為最小可定址的儲存器單位,而不是訪問儲存器中單獨的位。儲存器的每乙個位元組都由唯一的數字標識,稱為該位元組的位址,所有可能位址的集合稱為儲存器空間。

舉例來說,arm處理器工作狀態有如下兩種:

arm狀態:執行字對齊的32位arm指令。

thumb狀態:執行半字對齊的16位thumb指令。

字對齊、半字對齊、位元組對齊只要明白其中乙個,另外兩個自然也就理解了。所以這裡只對字對齊做乙個解釋:

假如,第一次取arm指令1的位址為 0x0000 0000,由於arm指令佔32位(4個位元組),因此位址0x0000 0001、0x0000 0002、0x0000 0003都是指令1的地盤。那麼第二次取arm指令2的位址為 0x0000 0004,同樣的道理,0x0000 0005、0x0000 0006、0x0000 0007也都是指令2的地盤,以此類推:

指令1:0x0000 0000——0x0000 0003

指令2:0x0000 0004——0x0000 0007

指令3:0x0000 0008——0x0000 000f

指令4:0x0000 0010——0x0000 0013

觀察各個指令的起始位址

若按十進位制來看分別是:0、4、8、16、…都可以被4整除

00(32位位址)

字對齊 半字對齊 位元組對齊的理解

一般情況下字為32位 4位元組 半字為16位 2位元組 位元組為8位 1位元組 大多數計算機使用 位元組 8位的資料塊 作為最小可定址的儲存器單位 而不是訪問儲存器中單獨的位。儲存器的每乙個位元組都由唯一的數字標識,稱為該位元組的位址,所有可能位址的集合稱為儲存器空間。舉例來說,arm處理器工作狀態...

字對齊 半字對齊 位元組對齊的理解

一般情況下字為32位 4位元組 半字為16位 2位元組 位元組為8位 1位元組 大多數計算機使用位元組 8位的資料塊 作為最小可定址的儲存器單位,而不是訪問儲存器中單獨的位。儲存器的每乙個位元組都由唯一的數字標識,稱為該位元組的位址,所有可能位址的集合稱為儲存器空間。舉例來說,arm處理器工作狀態有...

字對齊 半字對齊 位元組對齊的理解

一般情況下字為32位 4位元組 半字為16位 2位元組 位元組為8位 1位元組 大多數計算機使用位元組 8位的資料塊 作為最小可定址的儲存器單位,而不是訪問儲存器中單獨的位。儲存器的每乙個位元組都由唯一的數字標識,稱為該位元組的位址,所有可能位址的集合稱為儲存器空間。舉例來說,arm處理器工作狀態有...