I have this block of code here on Intel structure and I wonder why uhex$(ebx)+6 ? What is the +6 in there is for ? Can some one explain it to me ?
.code 
start: 
    ...
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD 
    ...
WinMain endp
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 
    ...
            .ELSEIF  ax==IDM_GETTEXT 
                ; store user input into buffer
                invoke GetWindowText,hwndEdit,ADDR buffer,512 
                ; convert into hex
                xor eax,eax
                invoke lstrlen, addr buffer
                mov mSize,eax
                mov edx,mSize
                mov esi, OFFSET buffer
                .WHILE i != edx
                    push edx
                    xor ebx,ebx
                    mov bl, [esi]
                    add esi,1
                    mov Value,uhex$(ebx) + 6
                    invoke lstrcat, addr mStr, Value
                    inc i
                    pop edx
               .ENDW
                ...
WndProc endp 
end start
I've tried searching on Google and ChatGPT but all I found was uhex convert 32 bit integer to hex string, I just need an explaination of uhex$ and why +6 ?
From masm32 folder D:\masm32\macros\macros.asm
      uhex$ MACRO DDvalue   ;; unsigned DWORD to hex string
        LOCAL rvstring
        .data
          rvstring db 12 dup (0)
        align 4
        .code
        invoke dw2hex,DDvalue,ADDR rvstring
        EXITM <OFFSET rvstring>
      ENDM
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With