Это именно , для чего нужны ярлыки. Вы можете просто ввести новую метку и использовать ее в качестве цели для инструкции jnz
:
.globl main
main:
movl $4, %eax
prev:
dec %eax
jnz prev
ret
Имейте в виду, что это создает prev
как метку для всего файла, то есть она должна быть уникальной. во всем исходном файле. Некоторые ассемблеры также предоставляют метки с цифрами c, которые могут дублироваться. Когда вы их используете, он находит ближайший в указанном направлении:
.globl main
main:
movl $4, %eax
1:
dec %eax
jnz 1b ; closest '1', going backwards (b).
ret
Это очень удобная функция, которая позволяет вам делать «локализованные» метки, не загрязняя пространство имен меток, и избавляет от необходимости использовать длинные метки, например main_loop_1
. Суффикс числовой метки c указывает направление на go при поиске метки, b
- назад, f
- вперед.