Is it a safe assumption, say for x86, that an instruction either does not access memory, or only reads from memory, or writes to memory?
I could not find any instruction but I am not sure if this really is the case.
What about ARM and MIPS?
Your question has been answered in comments for x86 - movsb
both reads and writes to memory.
On ARM the only instructions that touch memory is "read from memory to a register" and "write a register to memory", so no there aren't. Same with MIPS.
IIRC all (or almost all?) RISC processors are this "load and store" architecture.
movsb
has been in the x86 family since the venerable 8086 and reads and writes memory.inc [mem]
andadd [mem], whatever
.movsb
, there's alsobts
.