标题:用汇编写的代码OD打开以后多了很多东西,找不到原程序代码
取消只看楼主
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
结帖率:91.43%
已结贴  问题点数:20 回复次数:4 
用汇编写的代码OD打开以后多了很多东西,找不到原程序代码
源码如下:
程序代码:
DATA SEGMENT
    BUF DB 'HELLO WORLD!  THIS IS MY FIRST ASM FILE! $'
DATA ENDS

 
CODE SEGMENT
    ASSUME  CS:CODE,DS:DATA
START:   MOV AX,DATA
    MOV DS,AX
    LEA DX,BUF
    MOV AH,09
    INT 21H
    MOV AH,4CH
    INT 21H
CODE ENDS
END START


用IDA打开以后还正常,只是数据段和函数名有些东西变了,但是主体的代码段没变
但是用OD打开以后,多了很多函数,而且找不到INT 21h 的中断  
如图,图片依次为OD打开exe以后的起始位置、输出字符串的函数位置、输出字符串函数里的一个循环(该循环能循环很久很久,我调了很久一直在循环中,后来用自动步过,过了好久分钟以上,才停下来输出了字符串;该循环在每次返回上面之前所有寄存器的值都没有变过。)


问题:用OD找不到代码段在哪里,整个里面也没有看到INT XX的中断语句,而是由很多的call。但是自己没有写,不明白为什么

link之后的exe:
3.rar (502 Bytes)
2015-01-15 09:54
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
表达有误,不是所有寄存器的值没有变,是每次循环以后的值和上一次的值一样
2015-01-15 09:56
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
回复 3楼 zklhp
知道了,谢谢。还有一个问题没有解决,就是中断。我怎么也找不着一个中断,是编译器把中断用其他方式表示出来了吗?
2015-01-15 14:39
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
回复 6楼 zklhp
谢谢。因为是刚开始接触汇编,从网上下的几十道代码挺适合的,但是没想到是16位的。
2015-01-15 17:02
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
回复 8楼 wmf2014
看来我的教材已经被淘汰很久了。。。。要更新了
2015-01-15 21:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-441114-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.173990 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved