Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uwm.edu!bionet!agate!ucbvax!CS.NIU.EDU!rickert From: rickert@CS.NIU.EDU (Neil Rickert) Newsgroups: comp.lang.asm370 Subject: Re: MVCL (was Re: why code in 370 Assembler) Message-ID: <9104261340.AA14703@ucbvax.Berkeley.EDU> Date: 26 Apr 91 13:36:22 GMT References: <9104260659.AA07567@ucbvax.Berkeley.EDU> Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: IBM 370 Assembly Programming Discussion List Distribution: inet Organization: The Internet Lines: 27 In article <9104260659.AA07567@ucbvax.Berkeley.EDU> LDW@USCMVSA.BITNET writes: > >I've been known to remark that MVCL is an 18 byte RR instruction. >Let's see now: > LA Rx,source 4 > LA R(x+1),source_length 4 > LA Ry,target 4 > LA R(y+1),target_length 4 > MVCL Ry,Rx 2 > --- > 18 This is why I sometimes prefer an MVC or an MVC/EX loop. But of course your 18 bytes is a serious underestimate. After all you must first save the current contents of the registers, and later restore them. If something is really worth doing in assembler, you are probably going to have all registers tied up, so there just aren't two even/odd pairs readily available. MVCL is mostly useful when you need its feature of padding the destination. -- =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= Neil W. Rickert, Computer Science Northern Illinois Univ. DeKalb, IL 60115 +1-815-753-6940