2011-01-20 5 views
0

Прежде всего, я знаком с концепцией того, как отрицательные числа представлены системой дополнений двух, и я знаю, что когда есть инструкция перехода (короткая или близкая), ее смещение всегда добавляется в регистр EIP, и есть 't случай, когда смещение вычитается из регистра 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

+0

Какое отношение это имеет к этому вопросу ?! – Pooria

ответ

1

-4 будет добавлен к значению регистра, уменьшив его на 4. Смещения всегда добавляются.

 Смежные вопросы

  • Нет связанных вопросов^_^