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

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;:        XHEXStrW.ASM -  Versione: 11-9-1992, a cura di Salvo Rosta.       ::
;:                                                                          ::
;: Function  XHexStrW(PWord)        ; Converte PWord in stringa di Hex      ::
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
CODE      SEGMENT BYTE PUBLIC
          ASSUME  CS:CODE
          PUBLIC  XHexStrW

Function  EQU     DWORD PTR [BP+8]
PWord     EQU     WORD  PTR [BP+6]

XHexStrW  PROC    FAR
          PUSH    BP
          MOV     BP,SP

          LES     DI,Function         ;Lettura Puntatore Funzione Stringa ES:DI
          CLD
          MOV     AL,4
          STOSB                       ;Scrittura Lunghezza Stringa
          MOV     BX,PWord            ;Lettura Word
          MOV     AL,BH
          CALL    ConvByte
          MOV     AL,BL
          CALL    ConvByte
          POP     BP
          RET     2
XHexStrW  ENDP

ProcDue   PROC    NEAR
ConvByte: MOV     AH,AL               ;Salvataggio in AH
          SHR     AL,1                ;Trattamento Nibble High
          SHR     AL,1
          SHR     AL,1
          SHR     AL,1
          ADD     AL,90h
          DAA
          ADC     AL,40h
          DAA
          CLD
          STOSB                       ;Scrittura Carattere Nibble High
          MOV     AL,AH               ;Trattamento Nibble Low
          AND     AL,0Fh
          ADD     AL,90h
          DAA
          ADC     AL,40h
          DAA
          STOSB                       ;Scrittura Carattere Nibble Low
          RET
ProcDue   ENDP

CODE      ENDS
          END