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

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

木鱼



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

5come5帮你背单词 [ fresh /fre/ 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帮你背单词 [ like /laik/ a. 相像的,相同的;prep. 像,和…一样;v. 喜欢,希望,想要 ]


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



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

5come5帮你背单词 [ irritate /'iriteit/ vt. 使恼火,激怒,使疼痛,刺激 ]


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帮你背单词 [ influenza /influ'enzə/ n. 流行性感冒 ]


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



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

5come5帮你背单词 [ cluster /'klΛstə/ n. 丛,群,串;v. (使)群集,(使)丛生 ]


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帮你背单词 [ cheer /tiə/ vt. 使高兴,使鼓舞;vi. 欢呼,喝彩;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帮你背单词 [ contest /kən'test, 'kontest/ n. 竞争,比赛;v. 竞争,比赛,争论,争辩 ]


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



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

5come5帮你背单词 [ thrill /θril/ n. 一阵激动(恐惧),使人激动或毛骨悚然之物;v. 激动,(使)毛骨悚然 ]


应该是 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帮你背单词 [ industrial /in'dΛstriəl/ a. 工业的,产业的 ]


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



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

5come5帮你背单词 [ top /top/ n. 顶,上端,首位,上面,盖子;a. 最高的,最优秀的;vt. 位…之首,居…之上,超过 ]


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帮你背单词 [ immigrant /'imigrənt/ n. (外来)移民,侨民;a. (从外国)移来的,移民的 ]


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



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

5come5帮你背单词 [ negative /'negətiv/ a. 否定的,拒绝的,反面的,消极的,阴性的,负的;n. 底片,负数 ]


还要打上这个补丁

先睡觉了
谢谢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帮你背单词 [ swallow /'swoləu/ B v. 吞,咽,轻信,抑制 ]


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



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

5come5帮你背单词 [ ward /wo:d/ n. 病房,选区,受监护人;vt. 避开 ]


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帮你背单词 [ parcel /'pa:sl/ n. 包裹;打包 ]


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