1、須知:
大端模式(Big-endian)
高位位元組排放在記憶體的低位址端,低位位元組排放在記憶體的高位址端,即正序排列,高尾端;
小端模式(Little-endian)
低位位元組排放在記憶體的低位址端,高位位元組排放在記憶體的高位址端,即逆序排列,低尾端;
LSB
英文 least significant bit,中文義最低有效位。
MSB
Most Significant Bit的縮寫,指最高有效位。
2、課本例題
1 、LSB存放的位址即最低有效位元組位址,由于小端方案,最低有效位元組存儲在最小位址位置。
2 根據基址尋址,該位址為基址寄存器内容+形式位址。
基址寄存器内容:C000 0000H
記憶體:(我們先假設這個資料的LSB為00H)
低位址 | 00|資料低位元組 ,
高位址 | XX|
LSB為00,這裡形式位址FF00是負數,
補碼操作如下:
C000 0000H+ FFFF FF00H=BFFF FF00H
換成原碼操作,
C000 0000H - 0100H ( FF00的原碼為 -0100H) = BFFF
3、類型題:
某計算機按位元組編址,采用大端方式存儲資訊。其中,某指令的一個操作數的機器數為ABCD00FFH,該操作數采用基址尋址方式,指令中形式位址(用補碼表示)為FF00H,目前基址寄存器的内容為C000 0000H,則該操作數的LSB(即機器數的最後的FFH–低位在記憶體的高位址端)存放的位址是()。
問題1選項
A.C000 FF00H
B.C000 FF03H
C.BFFF FF00H
D.BFFF FF03H
記憶體:
低位址 | AB|資料高位元組 ,
| CD|
| 00|
高位址 | FF|
LSB為FF,這裡形式位址FF00是負數,
補碼操縱如下:
C000 0000h+ FFFF FF00=BFFF FF00H
上一道題實際上求到的位址是我們這道題的ABH(MSB)存放位置,還要再移動3次位元組的位置才到達LSB。
資料每次移動1個位元組(相當于AB->CD),在記憶體中的位址是移動1,
是以需要移動3,也就是在上一題的基礎上,再加上3
即是BFFF