- Может ли кто-нибудь объяснить мне, почему перед каждой константой в синтаксисе AT&T стоит символ «$»?
- Почему все регистры имеют символ «%»?
- Это просто еще одна попытка заставить меня часто печатать неуместно?
- Кроме того, я единственный, кто считает:
16 (% esp)
действительно противоречащим здравому смыслу по сравнению с [esp + 16]
?
- Я знаю, что он компилируется в одно и то же, но зачем кому-то вводить много символов «$» и «%» без необходимости? - Почему GNU выбрала этот синтаксис по умолчанию?
- Другое дело, почему каждой инструкции в синтаксисе at & t предшествует: l? - Я знаю это для размеров операндов, но почему бы просто не дать ассемблеру понять это?
(захочу ли я когда-нибудь сделать movl для операндов меньшего размера?)
- И последнее: почему аргументы mov инвертируются?
Разве не более логично, что:
eax = 5
mov eax, 5
где, как и в & t:
mov 5, eax
5 = a (? wait what ?)
Примечание:
Я не пытаюсь троллить. Я просто не понимаю, какой выбор дизайна они сделали, и пытаюсь понять, почему они сделали то, что сделали.
задан greatwolf 18 September 2013 в 04:14
поделиться