注册 登录
编程论坛 汇编论坛

【原创】16位的debug调试32位程序的五里雾

zklhp 发布于 2012-05-08 21:12, 638 次点击
;************************************************************************************************************************
;作者:zklhp  
;Email:zklhp@
;QQ:493165744
;2012.5.8
;版权所有 转载请保持完整
;************************************************************************************************************************

性好道术,能作五里雾    ——后汉书·张楷传

16位调试器 比如debug 是不能调试32位程序的 这个是常识

可是 真的不能调试么

呵呵 不要忘了 32位程序首先是一个16位程序 虽然这个程序的功能比较简单 只不过输出了几句话然后退出 但确实是货真价实的16位程序

所以。。。。

0C67:0000 0E            PUSH    CS
0C67:0001 1F            POP     DS
0C67:0002 BA0E00        MOV     DX,000E
0C67:0005 B409          MOV     AH,09
0C67:0007 CD21          INT     21
0C67:0009 B8014C        MOV     AX,4C01
0C67:000C CD21          INT     21
0C67:000E 54            PUSH    SP
0C67:000F 68            DB      68
0C67:0010 69            DB      69
0C67:0011 7320          JNB     0033
0C67:0013 7072          JO      0087
0C67:0015 6F            DB      6F
0C67:0016 67            DB      67
0C67:0017 7261          JB      007A
0C67:0019 6D            DB      6D
0C67:001A 206361        AND     [BP+DI+61],AH
0C67:001D 6E            DB      6E
0C67:001E 6E            DB      6E
0C67:001F 6F            DB      6F

这样的代码 可不仅仅是输出两句话就结束了这么简单 因为这根本不是16位程序 只不过是一个32位程序的开头

这样看或许明白一点

0C67:0000  0E 1F BA 0E 00 B4 09 CD-21 B8 01 4C CD 21 54 68   ........!..L.!Th
0C67:0010  69 73 20 70 72 6F 67 72-61 6D 20 63 61 6E 6E 6F   is program canno
0C67:0020  74 20 62 65 20 72 75 6E-20 69 6E 20 44 4F 53 20   t be run in DOS
0C67:0030  6D 6F 64 65 2E 0D 0D 0A-24 00 00 00 00 00 00 00   mode....$.......
0C67:0040  1D ED D5 EA 59 8C BB B9-59 8C BB B9 59 8C BB B9   ....Y...Y...Y...
0C67:0050  9A 83 B4 B9 5F 8C BB B9-59 8C BA B9 80 8C BB B9   ...._...Y.......
0C67:0060  9A 83 E6 B9 5E 8C BB B9-E6 83 DB B9 5B 8C BB B9   ....^.......[...
0C67:0070  9A 83 E5 B9 58 8C BB B9-9A 83 E4 B9 6D 8C BB B9   ....X.......m...

可惜啊 一上来我也没看明白 这就是五里雾罢。。


                                                                                                              zklhp
                                                                                                          2012 5 8

4 回复
#2
zklhp2012-05-08 21:17
自己顶一下 记下来省得忘了
#3
于祥2012-05-08 21:41
呵呵,我也来顶一下z版
#4
pklpklong0072012-05-09 13:06
mz头,dos stub为了向下兼容
#5
马甲1号2012-05-10 12:43
那是, PE文件, 可移植执行程序文件
1