appath.asm

来自「工欲善其事」· 汇编 代码 · 共 45 行

ASM
45
字号
; #########################################################################
;
;        -------------------------------------------------------
;        This module has been optimised by Alexander Yackubtchik
;        -------------------------------------------------------
;
; #########################################################################

    .386
    .model flat, stdcall  ; 32 bit memory model
    option casemap :none  ; case sensitive

    include \masm32\include\kernel32.inc

    .code

; ########################################################################

GetAppPath proc lpPathBuffer:DWORD

    invoke GetModuleFileName,0,lpPathBuffer,128  ; return length in eax

    mov ecx,lpPathBuffer
    lea ecx,[ecx+eax-6]                 ; add length to ecx - 6

  ; -----------------------------------------
  ; read backwards until first "\" character
  ; -----------------------------------------

  @@:
    mov al,[ecx]                        ; load byte at address in ECX
    dec ecx                             ; dec ECX
    cmp al,'\'                          ; compare if "\"
    jne @B                              ; jump back to @@: if not "\"

    mov byte ptr [ecx+2],0              ; write zero terminator after "\"

    ret

GetAppPath endp

; ########################################################################

end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?