.TITLE STRMOV ; SUBROUTINE STRMOV(S1,I1,N,S2,I2) ; ; THIS SUBROUTINE MOVES A STRING OF CHARACTERS FROM ONE ARRAY TO ANOTHER ; ; ; ARGUMENTS --- ; S1 - AN ARRAY CONTAINING THE STRING TO BE MOVED ; I1 - INTEGER SPECIFYING THE POSITION OF THE FIRST CHARACTER TO BE ; MOVED RELATIVE TO THE FIRST POSITION OF THE ARRAY ; N -- NUMBER OF CHARACTERS TO BE MOVED ; S2 - THE RECEIVING ARRAY NAME ; I2 - INTEGER SPECIFYING THE POSITION OF THE FIRST CHARACTER IN S2 ; WHICH IS TO RECEIVE THE CHARACTERS FROM S1 ; ; STRMOV::MOV @6(R5),R0 ;N BLE RETURN ;RETURN IF N.LE.0 MOV @4(R5),R1 ;I1 BLE RETURN ;RETURN IF I1.LE.0 DEC R1 ADD 2(R5),R1 ;ADDRESS(S1(I1)) MOV @12(R5),R2 ;I2 BLE RETURN ;RETURN IF I2.LE.0 DEC R2 ADD 10(R5),R2 ;ADDRESS(S2(I2)) LOOP: MOVB (R1)+,(R2)+ ;S2(I2+J-1)=S1(I1+J-1) SOB R0,LOOP ;DO J=1,N RETURN: RTS PC .END