存的基本單位是位元組(BYTE). 每個位元組是8個二進位制位, 所以每個位元組能表示的最大的數是11111111, 即十進位制的255. 一般來說, 用十六進位制比較方便, 因為每4個二進位制位剛好等於1個十六進位制位, 11111111b = 0xFF. 記憶體中的位元組是連續存放的, 兩個位元組構成一個字(WORD), 兩個字構成一個雙字(DWORD)。在INTEL架構中, 採用small endian格式, 即在記憶體中,高位位元組在低位位元組後面. 舉例說明:十六進位制數803E7D0C, 每兩位是一個位元組, 在記憶體中的形式是: 0C 7D 3E 80. 在32位暫存器中則是正常形式,如在EAX就是803E7D0C. 當我們的形式地址指向這個數的時候,實際上是指向第一個位元組,即0C. 我們可以指定訪問長度是位元組, 字或者雙字. 假設DS:[EDX]指向第一個位元組0C:
mov AL, byte ptr DS:[EDX] ;把位元組0C存入AL
mov AX, word ptr DS:[EDX] ;把字7D0C存入AX
mov EAX, dword ptr DS:[EDX] ;把雙字803E7D0C存入EAX
存的基本單位是位元組(BYTE). 每個位元組是8個二進位制位, 所以每個位元組能表示的最大的數是11111111, 即十進位制的255. 一般來說, 用十六進位制比較方便, 因為每4個二進位制位剛好等於1個十六進位制位, 11111111b = 0xFF. 記憶體中的位元組是連續存放的, 兩個位元組構成一個字(WORD), 兩個字構成一個雙字(DWORD)。在INTEL架構中, 採用small endian格式, 即在記憶體中,高位位元組在低位位元組後面. 舉例說明:十六進位制數803E7D0C, 每兩位是一個位元組, 在記憶體中的形式是: 0C 7D 3E 80. 在32位暫存器中則是正常形式,如在EAX就是803E7D0C. 當我們的形式地址指向這個數的時候,實際上是指向第一個位元組,即0C. 我們可以指定訪問長度是位元組, 字或者雙字. 假設DS:[EDX]指向第一個位元組0C:
mov AL, byte ptr DS:[EDX] ;把位元組0C存入AL
mov AX, word ptr DS:[EDX] ;把字7D0C存入AX
mov EAX, dword ptr DS:[EDX] ;把雙字803E7D0C存入EAX