回 帖 发 新 帖 刷新版面

主题:debug里怎么看结果啊!高手求救!

我刚学的汇编!我编了个程序,在debug里运行后显示了内存的结果,但是都是十六制数字和字母

回复列表 (共6个回复)

沙发


13B8:0005 780A          JS      0011
13B8:0007 7410          JZ      0019
13B8:0009 C6060100FF    MOV     BYTE PTR [0001],FF
13B8:000E EB11          JMP     0021
13B8:0010 90            NOP
13B8:0011 C606010001    MOV     BYTE PTR [0001],01
13B8:0016 EB09          JMP     0021
13B8:0018 90            NOP
13B8:0019 C606010000    MOV     BYTE PTR [0001],00
13B8:001E EB01          JMP     0021
13B8:0020 90            NOP
13B8:0021 E8F217        CALL    1816
13B8:0024 83C404        ADD     SP,+04


13B8:0005 780A          JS      0011
13B8:0007 7410          JZ      0019
13B8:0009 C6060100FF    MOV     BYTE PTR [0001],FF
13B8:000E EB11          JMP     0021
13B8:0010 90            NOP
13B8:0011 C606010001    MOV     BYTE PTR [0001],01
13B8:0016 EB09          JMP     0021
13B8:0018 90            NOP
13B8:0019 C606010000    MOV     BYTE PTR [0001],00
13B8:001E EB01          JMP     0021
13B8:0020 90            NOP
13B8:0021 E8F217        CALL    1816
13B8:0024 83C404        ADD     SP,+04

板凳


怎么看啊!!大虾救啊!

3 楼

步骤(假设程序名为AA.EXE):
1、DEBUG AA.EXE (程序名一定不能少)
2、-U(找到返回DOS语句对应的地址,也就是MOV AH,4CH对应的地址,假设为0023)
3、-G=0 0023
4、分析结果位置:
   若在内存单元,用D查看
  -D DS:0(还要分析结果的偏移地址,找到相应地址的内容)
   若在寄存器中,用R查看

如果是可以直接在DOS显示结果的,直接运行AA.EXE就行了。

4 楼

不是很懂的,能说简单点吗????

5 楼

-u  i
13B9:0000 B8B713        MOV     AX,13B7
13B9:0003 8ED8          MOV     DS,AX
13B9:0005 8EC0          MOV     ES,AX
13B9:0007 8D360000      LEA     SI,[0000]
13B9:000B 8D3E0A00      LEA     DI,[000A]
13B9:000F 8A05          MOV     AL,[DI]
13B9:0011 240F          AND     AL,0F
13B9:0013 0430          ADD     AL,30
13B9:0015 8805          MOV     [DI],AL
13B9:0017 58            POP     AX
13B9:0018 B104          MOV     CL,04
13B9:001A D2F8          SAR     AL,CL
13B9:001C 0430          ADD     AL,30
13B9:001E 884501        MOV     [DI+01],AL
-d
13B9:0000  B8 B7 13 8E D8 8E C0 8D-36 00 00 8D 3E 0A 00 8A   ........6...>...
13B9:0010  05 24 0F 04 30 88 05 58-B1 04 D2 F8 04 30 88 45   .$..0..X.....0.E
13B9:0020  01 46 47 E2 EA 50 E8 CC-D6 83 C4 02 EB 7D C6 06   .FG..P.......}..
13B9:0030  FE 60 FF 83 3E 40 60 00-00 00 C7 06 40 60 FF FF   .`..>@`.....@`..
13B9:0040  C6 06 18 56 00 A1 D6 5D-48 50 E8 EE 17 EB DA A0   ...V...]HP......
13B9:0050  D6 5D FE C8 88 86 7E FF-A1 D6 5D 48 50 8D 86 7F   .]....~...]HP...
13B9:0060  FF 50 E8 A1 17 83 C4 04-B8 FF FF 50 B8 42 0D 50   .P.........P.B.P
13B9:0070  8D 86 7E FF 50 E8 C6 D2-83 C4 06 0A C0 75 17 B8   ..~.P........u..
-

6 楼

感觉的你的反汇编u没有完全啊,程序没有显示完整
你把源程序发来看看,因为还要结合数据段的定义才能比较清楚说明结果在哪里

我来回复

您尚未登录,请登录后再回复。点此登录或注册