注册 登录
编程论坛 汇编论坛

汇编怎么把数字字符串转成数字-_-!

狐狸先生 发布于 2009-07-21 21:28, 2878 次点击
比如
szx  db   '2222',0
szy  db   '3333',0
szaa db   '%d',0

lea    edi,szx
lea    esi,szy

mov    eax,edi
mov    ebx,esi
mul    eax
invoke wsprintf addr szBuffer,addr szaa,eax
invoke MessageBox,0,addr szBuffer,0,MB_OK

就这一小段,俺不知道怎么把字符串转成数字,哪位老大有空指点下好不
只要汇编代码实现的,其他的不要-_-
4 回复
#2
狐狸先生2009-07-21 21:28
不好意思,网络不太好,卡了下发重复了-_-
见谅~
#3
狐狸先生2009-07-21 21:30
不好意思,网络不太好,卡了下发重复了-_-
见谅~
#4
非虫2009-07-21 21:49
你有装MASM32吗?在masm32\m32lib文件夹中有。a2dw.asm
; #########################################################################

    ; --------------------------------------
    ; This procedure was written by Iczelion
    ; --------------------------------------

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

      include \MASM32\INCLUDE\kernel32.inc

    .code

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

a2dw proc uses ecx edi edx esi String:DWORD

      ;----------------------------------------
      ; Convert decimal string into dword value
      ; return value in eax
      ;----------------------------------------

      xor ecx, ecx
      mov edi, String
      invoke lstrlen, String

      .while eax != 0
        xor edx, edx
        mov dl, byte ptr [edi]
        sub dl, "0" ; subtrack each digit with "0" to convert it to hex value
        mov esi, eax
        dec esi
        push eax
        mov eax, edx
        push ebx
        mov ebx, 10
          .while esi > 0
            mul ebx
            dec esi
          .endw
        pop ebx
        add ecx, eax
        pop eax
        inc edi
        dec eax
      .endw

        mov eax, ecx
        ret

a2dw endp

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

end
#5
狐狸先生2009-07-22 07:57
多谢非虫老大
那里面不但有a2dw还有 atol什么什么的

其实我一直都是用的masm32编译,但没仔细看过那些目录-_-!
1