В конце функции, я видел много инструкций, как показано ниже:Что. Long 0xXXXXXXXX означает в asm?
.long 0xXXXXXXXX ; unknown opcode
Что они означают?
В конце функции, я видел много инструкций, как показано ниже:Что. Long 0xXXXXXXXX означает в asm?
.long 0xXXXXXXXX ; unknown opcode
Что они означают?
.long
(равно .int
) - это директива, которая сообщает ассемблеру собирать 32-битное количество прямо здесь. Дисассемблер обычно испускает их, когда данные, с которыми он сталкивается, не похожи на какую-либо известную инструкцию. Обычно это тот случай, когда есть literal pool, так как они не содержат машинный код, а данные, дизассемблер печатает данные, которые они содержат. Я считаю, что в объектном файле есть отладочная информация, которая сообщает дизассемблеру, какие части раздела .text
- это машинный код и какие части являются литеральными пулами.