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