There are a few possibilities… here are a couple I can think of off the top of my head:
-
You could access it relative to a label that comes after the
.byte
directive. Example:.byte 0x0a label: mov (label - 1), %eax
-
Based on the final linked layout of the program, maybe the
.byte
directives will get executed as code. Normally you’d have a label in this case too, though… -
Some assemblers don’t support generating x86 instruction prefixes for operand size, etc. In code written for those assemblers, you’ll often see something like:
.byte 0x66 mov $12, %eax
To make the assembler emit the code you want to have.