首页
社区
课程
招聘
[旧帖] DOS不是单任务系统吗?那我在dos7.01下面直接打开debug看到的汇编命令是哪个程序的? 0.00雪花
发表于: 2011-2-17 11:11 6212

[旧帖] DOS不是单任务系统吗?那我在dos7.01下面直接打开debug看到的汇编命令是哪个程序的? 0.00雪花

2011-2-17 11:11
6212
DOS不是单任务系统吗?那我在dos7.01下面直接打开debug看到的汇编命令是哪个程序的?
为什么还能用debug单步执行,那不是执行另一个程序了吗?请高手解答

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
2
简单的说,Dos下的调试,是由调试器来负责加载要运行的程序,并做一定的处理,hook一些函数和中断,一两句话讲不清楚,具体内容你可以参考《软件调试》中4.4实模式调试器例析,里面讲的很清楚……
2011-2-17 11:21
0
雪    币: 1240
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看得不是很明白,楼主指的是在debug下用T命令单步么?在DOS下用debug调试程序,依然是单任务,因为你同时只能调试一个程序

另外,在DOS下有一种特殊的程序叫TSR,就是常驻内存程序,一般是利用int8,int9等中断实现“准多任务”,比如说整人专家、Game Tools、SoftIce等调试工具就是这样的,看起来像多任务——因为能与你要调试的程序同时运行
2011-2-17 11:39
0
雪    币: 1240
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
另外,所谓的多任务只不过是让CPU在某一时间段处理程序A,在接下来的时间段处理程序B罢了,这个时间段很短,几毫秒,用户感觉不到,其实在每个瞬间,CPU只能处理一个任务。所以从CPU的角度上说,多任务不存在,多任务只是软件营造出来的一种错觉。

所以Windows下也好,DOS下也罢,只要程序写出了多任务的效果就行,就如Windows 3.X,只不过是DOS下的一个程序而已,却能给你多任务的感觉。

楼主不必太较真了
2011-2-17 12:24
0
雪    币: 1556
活跃值: (310)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
NTVDM

.exe
2011-2-17 12:32
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不清楚,帮楼主盖楼
2011-2-17 13:24
0
雪    币: 2393
活跃值: (1387)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
单任务系统

不是
單程序系統
2011-2-17 17:48
0
雪    币: 233
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
就单进程 这么简单吗

有个DOS插件

名字叫QEMM  可以让支持4G内存扩展 优点我不详细说  你懂的 就是让DOS支持32位东东

让DOS支持上高32内存了 那你能做什么 你也懂的

LZ你自己找去..因为现在用不到这些了 所以基本以前研究的都忘记了 很多资料都封闭了
2011-2-17 21:50
0
雪    币: 1240
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
楼上提到的QEMM,呵呵,好东西啊
不过在上世纪90年代,QEMM最大的卖点是能通过优化尽可能的把TSR程序塞进640K以上的内存空间,基本上能让空闲的常规内存达到634K(只占用6K),神器啊!
2011-2-18 01:18
0
雪    币: 233
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
还牵涉啥8087指令集的是吧 懂都不懂的。。学无止尽 蛋疼
2011-2-18 02:33
0
雪    币: 28
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
说是多任务其实是单任务的,只不过由于把任务分成时间片,轮流运行,但是间隔很短,给人感觉就是多任务
2011-2-18 15:54
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
传说中的时间片轮转...
2011-2-18 16:27
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
补充一下:实际上,任何单CPU系统中的任务都只能说是单任务的,所谓的多任务也指示时间片轮转或者其他操作系统窗口划分的结果。真正的多任务,是需要多CPU并且在编写程序的时候需要指定CPU运行的指令,充分调度,这样才能算是多任务...
2011-2-18 16:35
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
请高人解答,本人在网上找了无数答案,每个都差不多没有一个能详细解释这个问题的,Dos是单任务系统,用debug和t命令执行的汇编命令是哪个程序的?在debuG里面用t执行汇编命令时那个被调试的程序执行任务了没有啊
2011-2-24 09:07
0
雪    币: 1240
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
其实大家已经回答你了。只是你钻了牛角尖。

Debug就是一个应用程序,你可以理解为被调试的程序是作为Debug的文档被载入的,Debug通过修改中断向量表之类的底层技术来让你单步跟踪程序。

或者,你可以把Debug当作是一个Shell,你调试的程序是运行了,如果你用的是g命令,那么程序运行完了又会回到Debug,如果你用的是t命令,那么程序每运行一条指令就回到Debug。

原理上,与用Turbo C之类的开发环境是类似的

网上你怕是找不到太多的相关文档了,因为DOS在internet普及前就淘汰了。
2011-2-24 11:02
0
游客
登录 | 注册 方可回帖
返回
//