assembly masm组件中的uhex$

gblwokeq  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(132)

我有这个代码块在这里的英特尔结构,我想知道为什么uhex$(ebx)+6+6是什么意思有人能给我解释一下吗?

.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

我试着在谷歌和ChatGPT上搜索,但我找到的都是uhex转换32位整数到十六进制字符串,我只需要一个uhex$的解释,为什么+6

biswetbf

biswetbf1#

来自masm32文件夹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

相关问题