;:::::::::::::::::::::::::::::::::::::::::
;:      Sito:  www.byteman.it  OpenWeb  ::
;:  Raccolta:  Particelle PAS+ASM       ::
;:    Autore:  Salvo Rosta aka byteman  ::
;:    Titolo:  XRIGHTS.ASM              ::
;: Revisione:  07-04-1994               ::
;:::::::::::::::::::::::::::::::::::::::::

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;:        XRIGHTS.ASM  -  Versione: 20-agosto-1991, a cura di Salvo Rosta.  ::
;:                                                                          ::
;: Function  XrightS(String,Lung) ; Parte Destra di String Lunga Lung.      ::
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
CODE      SEGMENT BYTE PUBLIC
          ASSUME  CS:CODE
          PUBLIC  XrightS

Function  EQU     DWORD PTR [BP+12]
String    EQU     DWORD PTR [BP+8]
Lung      EQU     BYTE PTR [BP+6]

XrightS    PROC    FAR
          PUSH    BP
          MOV     BP,SP
          PUSH    DS

          LES     DI,Function         ;Lettura Puntatore Funzione Stringa ES:DI
          LDS     SI,String           ;Lettura Puntatore Stringa DS:SI
          XOR     CH,CH
          MOV     CL,Lung             ;Numero Voluto di Caratteri in CL
          CLD
          LODSB
          MOV     DL,AL               ;Numero Attuale di Caratteri in DL
          CMP     CL,DL
          JBE     Copia               ;Caso CL <= DL
          MOV     CL,DL               ;Caso CL >  DL
Copia:    MOV     AL,CL
          STOSB                       ;Modifica Lunghezza Funzione Stringa
          JCXZ    StopX
          SUB     DL,CL
          XOR     DH,DH
          ADD     SI,DX
          REP     MOVSB               ;Copia String in Function

StopX:    POP     DS                  ;Ripristino Registri
          POP     BP
          RET     6
XrightS    ENDP

CODE      ENDS
          END