MOV src dest (или) MOV dest src?

MOV является, вероятно, первой инструкцией, которую все изучают при изучении ASM.

Сейчас я встретился с книжным Программированием Ассемблера в GNU/Linux для Архитектуры IA32 Rajat Moona, который говорит:

сопроводительный текст http://i.imagehost.org/0897/mov.gif

Но я узнал, что это MOV dest, src. Как "Загрузка dest с src". Даже Wiki говорит то же.

Я не говорю, что автор неправ. Я знаю, что он прав. Но что я пропускаю здесь?

btw.. он использует GCC's as собрать эти инструкции. Но это не должно изменять право синтаксиса инструкции?

16
задан Tadeusz A. Kadłubowski 7 March 2010 в 19:33
поделиться

3 ответа

mov dest, src вызывается синтаксисом Intel .

mov src, dest вызывается синтаксисом AT&T .

Ассемблеры UNIX, включая ассемблер GNU, используют синтаксис AT&T, все другие известные мне ассемблеры x86 используют синтаксис Intel. Вы можете прочитать о различиях в Википедии .

42
ответ дан 30 November 2019 в 15:43
поделиться

Да, поскольку / gas использует синтаксис AT&T, который использует порядок src, dest. MASM, TASM, NASM и т. Д. Используют порядок "dest, src". Как оказалось, синтаксис AT&T не очень хорошо сочетается с процессорами Intel и (по крайней мере, IMO) представляет собой почти нечитаемый беспорядок. Например, movzx выходит особенно плохо.

6
ответ дан 30 November 2019 в 15:43
поделиться

Существует два различных типа синтаксиса языка ассемблера - синтаксис Intel и AT&T. Вы можете найти сравнение обоих на странице ассемблера в Википедии .

Скорее всего, ваша книга использует синтаксис AT&T, где исходный операнд стоит перед целевым.

1
ответ дан 30 November 2019 в 15:43
поделиться
Другие вопросы по тегам:

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