请大虾们帮忙看看这几句代码!
00401BFA|> /8B5424 18 /MOV EDX,DWORD PTR SS:00401BFE|. |BE 0A000000 |MOV ESI,0A
00401C03|. |0FBE0411 |MOVSX EAX,BYTE PTR DS:
00401C07|. |99 |CDQ
00401C08|. |F7FE |IDIV ESI
00401C0A|. |8B4424 18 |MOV EAX,DWORD PTR SS:
00401C0E|. |80C2 30 |ADD DL,30
00401C11|. |881401 |MOV BYTE PTR DS:,DL
00401C14|. |41 |INC ECX
00401C15|. |3BCD |CMP ECX,EBP
00401C17|.^\7C E1 \JL SHORT SuperCli.00401BFA
请问: 如果:Edx:Eax的值为44H,那么DL的值是多少,是4吗?
先谢谢大家的帮忙!
[ 本帖最后由 ly1595 于 2008-3-3 16:42 编辑 ] CDQ Eax 的符号位 扩展到 Edx
idiv 被除数 edx:eax 商 eax余数edx 看样子是把字符串转换成 0-9的ASCII码~~ 谢谢,但是好像结果怎么不对呢!~~~ 比如:Edx:Eax的值为44H,那么DL的值是多少,是4吗? 00401C0E 这里 edx 不可能为44h的吧 ? 你说的是那里?
你说的是那一步??
比如:Edx:Eax的值为44H,那么DL的值是多少,是4吗? dl为0 EAX值为44H,IDIV以后得出的值我就看不懂了,EAX为00000006,EDX为00000008
EAX 00000006
ECX 00000004
EDX 00000008
EBX 00000000
ESP 0012EC7C
EBP 00000008
ESI 0000000A
EDI 0012F0A8
EIP 00401C0A SuperCli.00401C0A
C 1ES 0023 32位 0(FFFFFFFF)
P 1CS 001B 32位 0(FFFFFFFF)
A 1SS 0023 32位 0(FFFFFFFF)
Z 0DS 0023 32位 0(FFFFFFFF)
S 1FS 003B 32位 7FFDD000(FFF)
T 0GS 0000 NULL
D 0
O 0LastErr ERROR_ENVVAR_NOT_FOUND (000000CB)
EFL 00000297 (NO,B,NE,BE,S,PE,L,LE)
ST0 empty 0.0
ST1 empty 0.0
ST2 empty 0.0
ST3 empty 0.0
ST4 empty 0.0
ST5 empty 0.0
ST6 empty 1.0000000000000000000
ST7 empty 1.0000000000000000000
3 2 1 0 E S P U O Z D I
FST 4000Cond 1 0 0 0Err 0 0 0 0 0 0 0 0(EQ)
FCW 027FPrec NEAR,53掩码 1 1 1 1 1 1 OK,终于明白了,谢谢~
页:
[1]