При составлении следующей инструкции:
movl 4(%ebp), 8(%ebp)
Я получил: слишком много ссылок на память .
Что с ним не так?
Число в скобках является байтовым смещением (которое вызывает ссылку на память), и вы не можете иметь два из них с movl. Сначала вам нужно временно переместить значение в регистр.
movl
movl 4(%ebp), %ecx movl %ecx, 8(%ebp)
movl не перемещается в память-память, вам нужно пройти через регистр (таким образом, с двумя movl инструкциями).
Это не юридическая инструкция.Для большинства инструкций, которые ссылаются на память, вы должны переместить ее в / из регистра.