by BillyBoyo » Sun Mar 20, 2011 6:51 am
Sorry to be unclear in my description.
It has to set to zero, otherwise you're outside of the address space. Alternatively, an MVCL with an invalid high adress would crap all over low storage, rather than producing some exception. Wouldn't that be fun. And you'd have to have a special case where on completion the reg 2 is not pointing to the byte position after the last byte moved. If I'm not explaining that well, I'm sure you can still understand what I mean.
I wasn't being knowledgeable about this, I'd picked it up from the POP after you'd mentioned how long the text on MVCL was when I was looking for the destructive overlap.
I was wondering what the point of the wrap was. After all, the lesser instructions wouldn't be able to cross the boundary from high memory to low, would they? For instance, on an MVC it doesn't say, "by the way, you can wrap around memory when using MVC if you fancy it". However, on a little, light, further reading, it seems that the memory wrapping technique is important for virtual memory (and other things). So maybe in virtual memory, wrapped around physical memory, an MVC could actually operate like that - but without "knowing" it. I must be nuts to keep trying to follow this, and probably hopelessly wrong.