На ассемблере «динамический goto» реализовать можно так:
.data
msg: .string "Hello world!"
.bss
.lcomm p, 4
.text
.globl _start
_start:
mov $L2, %eax
mov %eax, p
jmp *p
L1:
push $0
call exit
L2:
push $msg
call puts
add $4, %esp
jmp L1
Пробовал ассемблерными вставками организовать - не получается.
C-шные метки ассемблер не признаёт.
Пробовал вместо них использовать asm volatile («L2:») - не работает.
Есть идеи?