2011-01-20 41 views
0

首先,我熟悉兩個補碼系統如何呈現負數的概念,並且我知道當有跳轉指令(短或接近)時,它所包含的偏移量將始終添加到EIP寄存器中,並且不存在是從EIP寄存器中減去偏移量的情況(如果我是正確的!)。但是我想知道,如果出現兩種以下類型的尋址時出現負值出現的偏移量,它將與跳轉指令中的偏移量如何使用相同,該偏移量始終被添加到基底中,而不會被減去案件?如何應用這兩種情況下的抵消?

(在GASM格式):
「BASE_ADDRESS(偏移,索引寄存器,標度)」,如:

%eax(-4,%ebx,1) 

「偏移量(基址寄存器)」 等:

-4(%eax) 

將二進制數字添加到eax寄存器還是減去?

+0

另請參閱http://stackoverflow.com/questions/4715521/would-there-be-such-case-of-jumping-if-yes-how – Jester 2011-01-20 23:33:45

回答

1

-4將被添加到寄存器的值,將其減少4.補償總是被添加。