Main memory is state. Registers and cache are state. The entire purpose of the CPU is to mutate state.
Main memory is state. Registers and cache are state. The entire purpose of the CPU is to mutate state.
He's not really stretching the definition, that's just the lens through which FP looks at the world.
Of course there is state. FP doesn't prohibit state, it just makes it explicit and referentially transparent. But this is in the semantics, not the execution model of the program.
If we are going to nitpick syntax, nothing about `mov eax ebx` lists main memory as output. In fact, mov doesn't even have an 'output'.
If you want to model mov as a function with the implicit output of "all of main memory", then you can do the same with any arbitrary C function. If you can't make that leap for C, then you can't make that leap for assembly.
Functional programmers are simply choosing to use a different style of map, but we both represent the same reality.