下面汇编代码有些不能通过DELPHI编译,请高手们帮我转一下过来能通过DELPHI编译,谢谢!Procedure PlayerNames; stdcall;
begin
  asm
    mov esi, MonsterBaseAddr 
    mov ecx, MonsterMaxNunber 
    cld
    .repeat
    lodsd
    test eax, eax
    jz _DPI_Exit
    mov PlayerAddress, eax       

    .if word ptr[eax] != 0
    add eax, PlayerNameOffset          
    mov PlayerNameAddress, eax           

    pushad
    invoke lstrlen, eax
    mov ecx, eax
    cld
    mov al, '('
    mov edi, PlayerNameAddress

    .if ShowMode == 1
    repne scasb
    jz @F
    stosb
    @@:
    call WritePlayerInfo    .else
    repne scasb
    jnz @F
    mov byte ptr[edi-1], 0
    @@:
    .endif

    _DPI_1:
    popad
    .endif
    .untilcxz
  end;
end;Procedure WritePlayerInfo; stdcall;     
begin
  asm
    mov edx, PlayerAddress
    movzx eax, word ptr[edx + PLAYERDENGJIOFFSET]    
    invoke Dd2DecAuto, edi, eax                      
    invoke lstrcat, PlayerNameAddress, addr szDengjiTemp
    invoke lstrlen, PlayerNameAddress

    add eax, PlayerNameAddress
    mov edi, eax

    mov esi, PlayerAddress
    add esi, PLAYERMENPAIOFFSET
    lodsb
    .if al == 0
mov ax, 0A1D0h
    stosw
    .elseif al == 1
mov ax, 0FDD5h
    stosw
    .elseif al == 2
mov ax, 0B0D0h
    stosw
    .endif

    mov esi, PlayerAddress
    add esi, PLAYERZHIYEOFFSET
    lodsb
    .if al == 1
mov ax, 0B6B5h
    stosw
    .elseif al == 2
mov ax, 0A3BDh
    stosw
    .elseif al == 3
mov ax, 0B9C7h
    stosw
    .elseif al == 4
mov ax, 0ADB9h
    stosw
    .elseif al == 5
mov ax, 0BDD2h
    stosw
    .elseif al == 6
mov ax, 0CCB4h
    stosw
    .endif

    mov al,')'
    stosb 
  end;
end;