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

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

木鱼



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

5come5帮你背单词 [ mr. /'mistə/ 先生 ]


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

环境:   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帮你背单词 [ vegetable /'ved3əitəbl/ n. 蔬菜 ]


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



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

5come5帮你背单词 [ fussy /'fΛsi/ a. 大惊小怪的,挑剔的,烦琐的 ]


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帮你背单词 [ disturbance /dis'tə:bəns/ n. 动乱,骚动,打扰,干扰,(身心)失调 ]


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



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

5come5帮你背单词 [ animation /ænə'meiən/ n. 生气,生机,生动,活泼,动画片,动画制作 ]


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帮你背单词 [ me /mi:, mi/ pron. (i的宾格)我 ]


是根据微软的例子改的

用每次对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帮你背单词 [ infinity /in'finiti/ v. 无限,无穷(大) ]


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



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

5come5帮你背单词 [ silk /silk/ 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帮你背单词 [ respectful /ris'pektful/ a. 恭敬的,有礼貌的 ]


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



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

5come5帮你背单词 [ freely /'fri:li/ ad. 自由地,直率地,免费地 ]


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帮你背单词 [ firm /fə:m/ n. 商行,公司;a. 结实的,坚定的 ]


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



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

5come5帮你背单词 [ apologize /ə'poləd3əaiz/ vi. 道歉,认错,辩护,辩解 ]


还要打上这个补丁

先睡觉了
谢谢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帮你背单词 [ sexual /'seksjuəl/ a. 性的,两性的,性别的 ]


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



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

5come5帮你背单词 [ central /'sentrəl/ 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帮你背单词 [ tape /teip/ n. 带子,录音(录象)磁带;vt. 把…录于录音(或录像)磁带 ]


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.014327(s) query 5, Time now is:04-29 11:07, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号