газ: слишком много памяти - PullRequest
5 голосов
/ 28 марта 2010

При составлении следующей инструкции:

movl 4(%ebp), 8(%ebp)

Я получил: слишком много ссылок на память .

Что с ним не так?

Ответы [ 3 ]

7 голосов
/ 28 марта 2010

Число в скобках является байтовым смещением (которое вызывает ссылку на память), и вы не можете иметь два из них с movl. Сначала вам нужно временно переместить значение в регистр.

movl 4(%ebp), %ecx
movl %ecx, 8(%ebp)
2 голосов
/ 28 марта 2010

movl не перемещается в память-память, вам нужно пройти через регистр (таким образом, с двумя movl инструкциями).

2 голосов
/ 28 марта 2010

Это не юридическая инструкция.Для большинства инструкций, которые ссылаются на память, вы должны переместить ее в / из регистра.

...