cmp
в этом случае сравнивает значение в eax
с константой 5
.Значение, на которое указывает eax
, если вы думаете, что это фактически указатель, вообще не сравнивается с константой.
Сравнение выполняется путем вычитания - в вашем случае это означает 5
вычитается из значения в eax
, и несколько флагов (CF, OF, SF, ZF, AF и PF, согласно документации ) устанавливаются соответствующим образом.Обычно за инструкцией cmp
следует условная инструкция некоторого вида (часто с переходом) для выполнения различных действий в зависимости от результатов сравнения.
Если вы сообщите нам значение в eax
,вместо того, чтобы интерпретировать eax
как указатель, я мог бы дать вам больше информации.Вы можете использовать p $eax
или info registers
, чтобы получить значение eax
в GDB.