高分,200分,通过DOS进入DEBUG当前的段是怎么确定的?

来源:百度知道 编辑:UC知道 时间:2024/05/27 12:04:31
(1)就是通过DOS进入DEBUG,那些数据是内存中的哪里。而且如果用R,A等命令对这些数据进行修改,会不会对系统造成什么影响。
还有。
(2)书本上说,命令:
MOV AH,2 ;MOV DL,30; INT 21;MOV AH 4C;INT 21;
前三条是在屏幕上输出字符“0”,最后两条是结束程序,反回DOS。
请详细解释一下是为什么,指令我都懂,可是没看见有输入出命令,还有INT 21不是系统中段吗。
回答出第一个,给50分,已经给了。
回合出第二个,再给50.
如果都回的比较好,我可以再加,满意的话200分也不成问题。不信的话,可以给我发消息。
本人是初学者,希望讲清楚点

我回答第二个问题。
第二句指令中的源操作数应该是30H才能输出结果0。INT 21H是系统的内部中断,表示调用由操作系统提供的21H号服务程序,这个程序提供键盘输入、显示器输出、文件操作等许多服务,本题为输出一个字符,因为AH中的功能号是2(INT
21H与AH中的功能号是联合使用的)。其中输出的是以DL中的数据为ASCII码的字符(30H对应的字符为0)。有的输出是不需要你从键盘提前输入数据的,因为你可以在源程序中输入,如本题,你在源程序中就已经输入30H进DL,当你调用AH中的功能是2时,系统就自动以DL中的数据对应的字符作为输出对象了。

一:在系统为DEBUG程序开辟的内存空间内。。。修改不会影像系统
二、int 21是系统 中断,关于这个中断你可以把它想象成这样的:在系统中有某一个地方A,A 可以等于 4C,2等等值,INT 21就是告诉系统去看下A里面的值是多少,然后决定调用什么效果的中断。
在你写出的程序里面,当给2时(后面有个30就是为了输出的0,应该是为了和ASCII码相对应,0在ASCII中是30.否则不能输出你想要的值,具体可以去看看计算机组成中的数值表示),2就是告诉INT 21,我要输出。而后面的4C就是返回系统。。。。。
总之,AH是INT 21的标志位,INT 21要检测AH中的值才决定调用什么中断。明白了?