Первое извлекает 32-битное значение, на которое указывает 8(%ebp)
.
Последний вычисляет плоский адрес .
Таким образом, в C дано int x = 0;
, и оно находится в 8(%ebp)
(т.е. x
находится в кадре стека функции):
Первый - int y = x;
Последний int *z = &x;
В машинном коде [для большинства / многих архитектур, таких как x86
- но не все (например, mc68000
)] регистры одинаковы, независимо от того, содержат ли они значение или адрес.