Ive работал над чтением через какой-то другой код сборки рукоятки, созданный gcc, и я наткнулся на то, что мне не удалось найти в спецификации.Странное мгновенное значение в сборе в сборе
movw r0, #39784
movt r0, 1
Очевидно, что первый один движется значение 39784 в нижний 16bits или r0, а операнд в MOVT о «1» является странным, потому что он не имеет хэш перед ним, и я был под впечатлением, что непосредственное значениям нужен хеш. Это как-то необязательно в определенных ситуациях? или я пропускаю что-то волшебное?
Это общая тема; константы в ARM-ассемблере. Вот [хороший блог ARM] (http://community.arm.com/groups/processors/blog/2010/07/27/how-to-load-constants-in-assembly-for-arm-architecture) на субъект. Они всегда используют «хэш». Это, вероятно, более переносимо (для других ARM-ассемблеров), чтобы использовать хэш. Однако 'gcc' и' gas' близки. Я не обязательно буду использовать то, что компилятор выдает в качестве руководства для написания ассемблера. Полезно посмотреть, что делает компилятор. –