2014-10-30 38 views
-1

我期待在一些彙編代碼和我看到:大會併發症32位,8位

cmpl $0x1d32, -0x4(%ebp) 

由於-0x4(%EBP)是1個字節,它顯然不能存儲在其它值(7474)它。因此,這段代碼什麼時候會顯示它們是平等的?它只會比較直接值的最高/最低有效字節或者是否存在某種隱藏字擴展?

+2

誰說'-0x4(%ebp)'是1個字節? 「cmpl」中的'l'後綴清楚地表明它很長,即4個字節(32位)。 – nrz 2014-10-30 15:19:59

回答

1

-0x4(%ebp)是一個地址,它沒有任何關聯的大小。指令中的後綴l將大小指定爲32位整數(long)。因此,處理器將從給定地址開始讀取4個字節,並將其作爲操作數以little-endian字節順序解釋(即以最低有效字節開始)。