Вопрос о потоке выполнения ASM - PullRequest
1 голос
/ 12 апреля 2011

Я не уверен, как интерпретировать поток выполнения ASM.До сих пор все файлы, которые я просматривал, имели явные переходы (синтаксис Intel x86 AT & T, т.е. jmp или jl) к меткам в файле ASM.

Мой вопрос: что происходит, когда вы достигаете конца метки без явного перехода к какой-либо другой метке.Продолжается ли выполнение до следующей метки?

Пример:

foo:
    opcodes
    ...

nextLablel:
    moreopcodes
    ...        

После выполнения кодов операций под меткой 'foo' ассемблер переходит на 'nextLablel'?

Заранее спасибо!

1 Ответ

3 голосов
/ 12 апреля 2011

Метки не существуют в реальном коде, поэтому да, если ветвления нет, код будет выполняться естественным образом. Ассемблер просто продолжит работу с кодом, игнорируя любые метки. Ярлыки - это просто удобный способ разветвления после jmp, je и тому подобного.

Если в вашем коде нет веток, у вас все равно может быть столько меток, сколько вы хотите. Они ничего не будут делать, и это будет очень плохой практикой, но вам это иллюстрирует идею, что они не вызывают никаких проблем с естественным потоком кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...