Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!ucsd!ucbvax!NYU.EDU!uupsi!sunic!sejnet.sunet.SE!eric From: uupsi!sunic!sejnet.sunet.SE!eric@NYU.EDU ("Eric Thomas, SUNET") Newsgroups: comp.lang.asm370 Subject: Re: Need string handling macros Message-ID: <9011090653.AA16872@ucbvax.Berkeley.EDU> Date: 9 Nov 90 00:47:53 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: IBM 370 Assembly Programming Discussion List Distribution: inet Organization: The Internet Lines: 26 In article <9011081730.AA21056@ucbvax.Berkeley.EDU>, A01MES1@NIU.BITNET (Michael Stack) writes... >Better, use MVCK. The length is expected to be in a register so you >don't need to EXecute, and it is a true length so you don't need to >worry about decrementing by one (and it can be zero if that's useful). MVCK? What is MVCK? Oh, one of these instructions which don't work on all 370 hardware and are not known to the F assembler. I certainly wouldn't recommend them... :-) MVCK was designed in order to make life easier for operating systems like, say version 1 of your typical intruder, which need to fetch data from user storage but need to check for storage protection to make sure the user is not going to access any data belonging to someone else through a system call. The data is to be moved to "more" protected storage, though, so you really can't just load the user's protection key and do an MVCL. You have to play with ISK's and handle the case where the data spans several pages, etc. MVCK can also be much slower than MVC or MVCL, so you don't want to use it unless you have a good reason to. This of course assumes both user and system data are in the same address space. If that is not the case (like, for instance, in version 2 of your favourite intruder), you can use MVCP and MVCS instead which work with 2 address spaces. Neither work on all 370 hardware, and neither should be used in CMS programs. Eric