The whole question is a bit inaccurate... (rereading it, you are actually very specific about "in the assembly above" ... oh well, then the answer is "nowhere" .. and rest of my answer is for the question which was not posted, but hopefully explaining why "nowhere" is answer for your question).
You have C source, and then you show some assembly as compiler output (but you don't specify compiler) and then you ask about Assembly...
The C is being defined upon "C abstract machine", while you are looking at particular x86-64 implementation of such abstract machine.
While that implementation does have some rules where static variables usually end up, it depends completely on the compiler - how it wants to implement them.
In pure Assembly (like hand-written, or from CPU point of view) there's no such thing as "static value". You have only registers, memory and peripherals.
So in Assembly (machine code) you can use certain register or certain part of memory as static variable. Whichever suits your needs better (there is no hard rule which would force you to do it in any particular way, except you must express your idea within the valid machine code for target CPU, but that usually means there are billions of possibilities and even when constraining yourself to only "reasonable" ones, it's still more toward tens of possible ways than only single).
You can (in x86-64) even create a bit convoluted scheme how to keep the value as code-state ("part of memory" is then the memory occupied by the machine code), i.e. it would be not directly written in memory as a value, but the code would follow certain code paths (from many possible) to obtain correct final result, i.e. encoding the value in the code itself. There's for example Turing-complete way how to compile C source into x86-64 machine code using only mov
instruction, which maybe doesn't use memory for static variables (not sure, whether it adds .data
section or avoid it by compiling it into mov
code too, but from its sheer existence it should be quite obvious how the .data
can be theoretically avoided).
So you are either asking how particular C compiler with particular compile time options implements static values (and that may have some variants depending on the source and options used)...
... or if you are really asking about "where are static values stored in assembly", then the answer is "anywhere you wish, as long as your machine code is valid and correct", as the whole "static value" concept is of higher level than CPU operates at, so it's like interpretation of particular machine code purpose "that's the static value", but there's no specific instruction/support in CPU to handle that.