газ: слишком многие ссылка памяти

При компиляции следующих инструкций:

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

Я добрался: слишком многие ссылка памяти.

Что случилось с ним?

5
задан Peter Cordes 24 July 2019 в 21:17
поделиться

3 ответа

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

movl 4(%ebp), %ecx
movl %ecx, 8(%ebp)
7
ответ дан 13 December 2019 в 19:24
поделиться

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

2
ответ дан 13 December 2019 в 19:24
поделиться

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

2
ответ дан 13 December 2019 в 19:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: