我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

« 1 2» Pages: ( 1/2 total )
本页主题: 懂汇编的蝈蝈进,菜鸟问题[已解决] 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

木鱼



性别: 保密 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1269
威望: 0
浮云: 585
在线等级:
注册时间: 2004-09-08
最后登陆: 2012-02-06

5come5帮你背单词 [ which /'wit/ pron. 哪一个,哪一些,…的那个,…的那些,那个,那些;a. 哪一个,哪一些 ]


懂汇编的蝈蝈进,菜鸟问题[已解决]

环境:   masm32
假设现在寄存器
EDI的hex是XXXXXXXX
既是unsighed int的数字为YYYYYYYYYY
如何将它的内容变为字符串的"YYYYYYYYYY"????

我的方法是
ustr$(EDI)
但是当EDI=1912541089(无符号十进制)即71FF0FA1(Hex)的时候
结果是"191254109/"
why?
MASMLIB.HLP中的说明
Emulating BASIC functions部分
INTEGER TO STRING CONVERSIONS

    ustr$(unsigned_DWORD_value)
    Return the OFFSET of a zero terminated string
    after converting an unsigned 32 bit value to
    a zero terminated string.

相关代码如下:
    LOCAL RESULT:DWORD
  MOV EDI,71FF0FA1H
  MOV RESULT, ustr$(EDI)    
    EDtext RESULT
其中ED是一个控件
DlgEdit WS_TABSTOP or ES_WANTRETURN or ES_LEFT or WS_BORDER,5,5,90,10,111


[ 此贴被木鱼在2006-09-01 18:50重新编辑 ]
顶端 Posted: 2006-08-31 23:25 | [楼 主]
newton



性别: 保密 状态: 该用户目前不在线
头衔: Messi + Aimar
等级: 人见人爱
家族: 考研俱乐部
发贴: 2770
威望: 1
浮云: 1777
在线等级:
注册时间: 2004-11-27
最后登陆: 2017-06-08

5come5帮你背单词 [ wall /wo:l/ n. 墙,围墙 ]


可以有两种方法。.一.利用已有的库函数转换
二.自己实现转换.用每次对10取模.再通过ascii码转换为字符串..
顶端 Posted: 2006-08-31 23:29 | [1 楼]
木鱼



性别: 保密 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1269
威望: 0
浮云: 585
在线等级:
注册时间: 2004-09-08
最后登陆: 2012-02-06

5come5帮你背单词 [ reunion // n. 团聚,重聚 ]


1.ustr是微软自己的一个函数,还有一个是UDW2STR
但是看了下,两者的汇编代码是一样的~~~


[ 此贴被木鱼在2006-09-01 00:07重新编辑 ]
顶端 Posted: 2006-08-31 23:36 | [2 楼]
newton



性别: 保密 状态: 该用户目前不在线
头衔: Messi + Aimar
等级: 人见人爱
家族: 考研俱乐部
发贴: 2770
威望: 1
浮云: 1777
在线等级:
注册时间: 2004-11-27
最后登陆: 2017-06-08

5come5帮你背单词 [ glory /'glo:ri/ n. 光荣,荣誉,壮丽,壮观 ]


你得把你的函数的代码都贴出来。.
顶端 Posted: 2006-08-31 23:42 | [3 楼]
木鱼



性别: 保密 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1269
威望: 0
浮云: 585
在线等级:
注册时间: 2004-09-08
最后登陆: 2012-02-06

5come5帮你背单词 [ lost /lost/ a. 失去的,错过的,浪费掉的,无望的,迷路的 ]


Copy code
; ?????????????????????????????????
    .486               ; create 32 bit code
    .model flat, stdcall     ; 32 bit memory model
    option casemap :none     ; case sensitive

;   include files
;   ~~~~~~~~~~~~~
    include \masm32\include\windows.inc
    include \masm32\include\masm32.inc
    include \masm32\include\gdi32.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\Comctl32.inc
    include \masm32\include\comdlg32.inc
    include \masm32\include\shell32.inc
    include \masm32\include\oleaut32.inc
    include \masm32\macros\macros.asm
    include \masm32\include\dialogs.inc

;   libraries
;   ~~~~~~~~~
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\gdi32.lib
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\Comctl32.lib
    includelib \masm32\lib\comdlg32.lib
    includelib \masm32\lib\shell32.lib
    includelib \masm32\lib\oleaut32.lib

    DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD

  ; -----------------------------
  ; macros for displaying results
  ; -----------------------------
    SBtext MACRO lpString
    invoke SendMessage,hStatus,SB_SETTEXT,255 or SBT_POPOUT,reparg(lpString)
    ENDM

    TBtext MACRO lpString
    invoke SetWindowText,FUNC(GetActiveWindow),reparg(lpString)
    ENDM

    EDtext MACRO lpString
    invoke SetWindowText,hEdit,reparg(lpString)
    ENDM

    EDclear equ <EDtext 0>

  .data?
    hWnd     dd ?
    hInstance dd ?
    hStatus   dd ?
    hEdit   dd ?


  .code

; ??????????????????????????????????
start:
  mov hInstance, FUNC(GetModuleHandle,NULL)
  call main
  invoke ExitProcess,eax

; ??????????????????????????????????
main proc

  invoke InitCommonControls

  Dialog "   ", \                 ; caption
      "MS Sans Serif",10, \         ; font,pointsize
        WS_OVERLAPPED or \         ; styles for
        WS_SYSMENU or DS_CENTER, \     ; dialog window
        4, \                   ; number of controls
        50,50,103,60, \           ; x y co-ordinates
        1024                   ; memory buffer size

  DlgButton "Get Key",WS_TABSTOP,5,17,40,13,101
  DlgButton "Close",WS_TABSTOP,55,17,40,13,IDCANCEL
  DlgStatus 110
  DlgEdit WS_TABSTOP or ES_WANTRETURN or ES_LEFT or WS_BORDER,5,5,90,10,111

  CallModalDialog hInstance,0,DlgProc,NULL

  ret

main endp

; ??????????????????????????????????
align 4

DlgProc proc hWin:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD




  LOCAL hDC   :DWORD
  LOCAL ps   :PAINTSTRUCT
  LOCAL rct   :RECT
  LOCAL crct :RECT

  LOCAL buffer1[1]:BYTE
  LOCAL buffer2[12]:BYTE
  LOCAL RESULT:DWORD


  STRING MainTitle,"KeyGen"

  Switch uMsg
    Case WM_INITDIALOG
    invoke SendMessage,hWin,WM_SETICON,1,
                  FUNC(LoadIcon,NULL,IDI_ASTERISK)
    push hWin
    pop hWnd

    invoke SetWindowText,hWin,ADDR MainTitle

    mov hStatus, FUNC(GetDlgItem,hWnd,110)
    mov hEdit,   FUNC(GetDlgItem,hWnd,111)

    invoke SendMessage,hEdit,WM_SETFONT,
                  FUNC(GetStockObject,ANSI_FIXED_FONT),TRUE
    return 1

    Case WM_COMMAND
    Switch wParam
      Case 101
         MOV BYTE PTR buffer1, 00H
         MOV EAX, 0BH
         SET0:
         MOV BYTE PTR [buffer2+EAX], 00H
         DEC EAX
         CMP EAX,00H
         JNL SET0
         
               PUSH 0
               CALL GetDriveTypeA
               MOV BYTE PTR buffer1,AL
               PUSH 0
               PUSH 0
               PUSH 0
               PUSH 0
               PUSH 0
               PUSH 0BH
               LEA EAX, buffer2
               PUSH EAX
               PUSH 0
               CALL GetVolumeInformationA
               LEA ESI,BYTE PTR buffer2
               MOVZX ECX,BYTE PTR buffer1
               XOR EDI,EDI
     
               runloop:
               MOV EAX,ECX
               MOV EBX,DWORD PTR DS:[ESI]
               MUL EBX
               ADD EDI,EAX
               DEC ECX
               CMP ECX,0
               JNZ SHORT runloop

               XOR EDI,797A7553H   ;Finish get key

               MOV RESULT, ustr$(EDI)      
        EDtext RESULT

      Case IDCANCEL
        jmp quit_dialog
    Endsw

    Case WM_PAINT
    mov hDC, FUNC(BeginPaint,hWin,ADDR ps)
    invoke GetClientRect,hWin,ADDR rct
    invoke GetWindowRect,hStatus,ADDR crct
    mov eax, crct.bottom
    sub eax, crct.top
    sub rct.bottom, eax
    invoke DrawEdge,hDC,ADDR rct,EDGE_ETCHED,BF_RECT
    invoke EndPaint,hWin,ADDR ps

    Case WM_CLOSE
    quit_dialog:
    invoke EndDialog,hWin,0
  Endsw

  xor eax, eax
  ret

DlgProc endp

; ?????????????????????????????????
end start
顶端 Posted: 2006-08-31 23:51 | [4 楼]
木鱼



性别: 保密 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1269
威望: 0
浮云: 585
在线等级:
注册时间: 2004-09-08
最后登陆: 2012-02-06

5come5帮你背单词 [ attachment /ə'tætmənt/ n. 附属物,附件,依恋,依附 ]


是根据微软的例子改的

用每次对10取模.再通过ascii码转换为字符串的方法可以试一下
刚才div的时候忘了xor edx,edx,明天试一下
不过要睡觉了
明天还要上自习
~~~
[屏蔽]自习


[ 此贴被木鱼在2006-09-01 00:10重新编辑 ]
顶端 Posted: 2006-08-31 23:52 | [5 楼]
newton



性别: 保密 状态: 该用户目前不在线
头衔: Messi + Aimar
等级: 人见人爱
家族: 考研俱乐部
发贴: 2770
威望: 1
浮云: 1777
在线等级:
注册时间: 2004-11-27
最后登陆: 2017-06-08

5come5帮你背单词 [ kilogram /'kiləgræm/ n. 千克,公斤 ]


你的是masm的哪个版本哦。.
我在masm32 的lib帮助里没有找到你给出的那个函数
顶端 Posted: 2006-09-01 00:16 | [6 楼]
木鱼



性别: 保密 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1269
威望: 0
浮云: 585
在线等级:
注册时间: 2004-09-08
最后登陆: 2012-02-06

5come5帮你背单词 [ street /'stri:t/ n. 街道,马路 ]


应该是 V8
具体见附件
在BASIC Function Emulation 中


[ 此贴被木鱼在2006-09-01 00:24重新编辑 ]
附件: MASMLIB.rar (98 K) 下载次数:1

顶端 Posted: 2006-09-01 00:18 | [7 楼]
newton



性别: 保密 状态: 该用户目前不在线
头衔: Messi + Aimar
等级: 人见人爱
家族: 考研俱乐部
发贴: 2770
威望: 1
浮云: 1777
在线等级:
注册时间: 2004-11-27
最后登陆: 2017-06-08

5come5帮你背单词 [ abnormal /æb'no:məl/ a. 反常的,变态的;不规则的 ]


恩。看到了。但是我的那个masm帮助里居然没有。.
用你的代码也没办法编译通过。.看来帮不了你了
顶端 Posted: 2006-09-01 00:23 | [8 楼]
木鱼



性别: 保密 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1269
威望: 0
浮云: 585
在线等级:
注册时间: 2004-09-08
最后登陆: 2012-02-06

5come5帮你背单词 [ spouse /spauz/ n. 配偶 ]


copy /b masm32$rar.001.rar + masm32$rar.002.rar + masm32$rar.003.rar + masm32$rar.004.rar masm32.rar


我用的版本
附件: masm32$rar.001.rar (999 K) 下载次数:2

附件: masm32$rar.002.rar (999 K) 下载次数:2

附件: masm32$rar.003.rar (999 K) 下载次数:2

附件: masm32$rar.004.rar (60 K) 下载次数:2

顶端 Posted: 2006-09-01 00:29 | [9 楼]
newton



性别: 保密 状态: 该用户目前不在线
头衔: Messi + Aimar
等级: 人见人爱
家族: 考研俱乐部
发贴: 2770
威望: 1
浮云: 1777
在线等级:
注册时间: 2004-11-27
最后登陆: 2017-06-08

5come5帮你背单词 [ arrive /ə'raiv/ n. 到达,抵达,到达者 ]


看下先。.我都好久没更新我的工具了
顶端 Posted: 2006-09-01 00:30 | [10 楼]
木鱼



性别: 保密 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1269
威望: 0
浮云: 585
在线等级:
注册时间: 2004-09-08
最后登陆: 2012-02-06

5come5帮你背单词 [ pilot /'pailət/ n. 飞机驾驶员,领航员;v. 驾驶(飞机等),领航 ]


还要打上这个补丁

先睡觉了
谢谢newton蝈蝈的热情帮助了
附件: M32V8SP1.rar (382 K) 下载次数:1

顶端 Posted: 2006-09-01 00:32 | [11 楼]
newton



性别: 保密 状态: 该用户目前不在线
头衔: Messi + Aimar
等级: 人见人爱
家族: 考研俱乐部
发贴: 2770
威望: 1
浮云: 1777
在线等级:
注册时间: 2004-11-27
最后登陆: 2017-06-08

5come5帮你背单词 [ axe // n. 斧子 ]


没办法解压啊
顶端 Posted: 2006-09-01 00:32 | [12 楼]
木鱼



性别: 保密 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1269
威望: 0
浮云: 585
在线等级:
注册时间: 2004-09-08
最后登陆: 2012-02-06

5come5帮你背单词 [ strict /strikt/ a. 严格的,严厉的,严密,正确的,完全的 ]


Quote:
引用第12楼newton于2006-09-01 00:32发表的:
没办法解压啊

要copy /b masm32$rar.001.rar + masm32$rar.002.rar + masm32$rar.003.rar + masm32$rar.004.rar masm32.rar
顶端 Posted: 2006-09-01 00:34 | [13 楼]
newton



性别: 保密 状态: 该用户目前不在线
头衔: Messi + Aimar
等级: 人见人爱
家族: 考研俱乐部
发贴: 2770
威望: 1
浮云: 1777
在线等级:
注册时间: 2004-11-27
最后登陆: 2017-06-08

5come5帮你背单词 [ alongside /ə'loŋ'said/ prep. 在…旁边,沿着…的边,和…在一起,和…相比;ad. 在旁边,并排地 ]


Quote:
引用第13楼木鱼于2006-09-01 00:34发表的:

要copy /b masm32$rar.001.rar + masm32$rar.002.rar + masm32$rar.003.rar + masm32$rar.004.rar masm32.rar

这么麻烦啊。.晕..
顶端 Posted: 2006-09-01 00:35 | [14 楼]
« 1 2» Pages: ( 1/2 total )
我来我网·5come5 Forum » 程序员之家

Total 0.033267(s) query 5, Time now is:11-22 11:56, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号