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

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

木鱼



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

5come5帮你背单词 [ rebel /'rebəl, ri'bel/ vi. 反抗,反叛,抵抗,抗议;n. 反叛者 ]


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

环境:   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帮你背单词 [ listen /'lisn/ n. 听,听信,听从 ]


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



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

5come5帮你背单词 [ limit /'limit/ vt. 限制,限定;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帮你背单词 [ conventional /kən'venənl/ a. 普通的,常见的,习惯的,常规的 ]


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



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

5come5帮你背单词 [ partner /'pa:tnə/ 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帮你背单词 [ physiology // 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帮你背单词 [ trespass /'trespəs/ v. 侵犯,闯入私人领地 vi. 非法侵入,侵占 ]


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



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

5come5帮你背单词 [ amend /ə'mend/ vt. 修改,修订 ]


应该是 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帮你背单词 [ scope /skəup/ n. 范围,视野,余地,机会 ]


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



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

5come5帮你背单词 [ fascinating /'fæsineitiŋ/ 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帮你背单词 [ beetle /'bi:tl/ n. 甲壳虫 ]


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



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

5come5帮你背单词 [ acceptance /ək'septəns/ 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帮你背单词 [ pottery /'potəri/ n. 陶器 ]


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



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

5come5帮你背单词 [ rugby // n. 橄榄球 ]


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帮你背单词 [ deficit /'difisit/ 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.011472(s) query 5, Time now is:04-29 07:05, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号