Набор команд и псевдо-команда
Я использую 'objdump' в Linux в различных двоичных файлах, и он возвращает их сборку. Команды, которые я получаю, являются "настоящими" командами или псевдо-командами? Я прочитал, что есть некоторые команды, которые являются комбинацией других команд, и они называются псевдокоманды. Это правда? Если да, как я могу получить только "настоящие" команды из исполняемого файла?
1 ответ
В современных системах на базе x86 или ARM под управлением Linux дизассемблированные инструкции будут настоящими инструкциями.
Псевдооперации — это удобство, используемое при создании программного обеспечения, например короткие последовательности инструкций, которые обычно используются вместе, или инструкции, реализованные неочевидным образом.
Например, инструкция
mov eax, #0
который помещает ноль в регистр EAX, возможно реализовать за меньшее количество байтов и/или меньшее время, как:
xor eax, eax
Этот оператор исключающего ИЛИ регистрирует EAX сам с собой, что всегда будет выдавать ноль. Таким образом, ассемблер может преобразовать простую для понимания инструкцию в меньшую или более быструю форму.