我做实验二时,按照书上给的指令书写出了指令。写完后我用U命令查看指令,是对的,和预想的一样。但是当我用T命令执行这段指令时,却出现一个让我出乎意料的情况。
当我用T命令执行时,出现了一个对话框,内容如下:
标题: 16位MS-DOS 子系统
内容: Command Prompt-debug
NTVDM CPU 遇到无效的指令。
CS:13e9 IP:5521 OP:ff ff ff 00 00 选择"关闭"终止应用程序。
最下面是两个按钮: 关闭 忽略
当我点击忽略按钮时,又出现一个和上面的对话框极其相似的对话框,只有CS IP OP的值不一样
再次点击忽略按钮,又会出现一个同样的对话框,只有CS IP OP 不一样。
具体情况如下:
第1次: CS:13e9 IP:5522 OP:ff ff 00 00 00
第2次: CS:13e9 IP:552d OP:ff ff ff 00 00
第3次: CS:13e9 IP:552e OP:ff ff 00 00 00
第4次: CS:13e9 IP:5539 OP:ff ff ff ff ff
第5次: CS:13e9 IP:553a OP:ff ff ff ff ff
第6次: CS:13e9 IP:553b OP:ff ff ff ff ff
第7次: CS:13e9 IP:553c OP:ff ff ff ff 00
第8次: CS:13e9 IP:553d OP:ff ff ff 00 00
第9次: CS:13e9 IP:553e OP:ff ff 00 00 00
第10次: CS:13e9 IP:554d OP:ff ff ff 00 00
第11次: CS:13e9 IP:554e OP:ff ff 00 00 00
第12次: CS:13e9 IP:55ce OP:63 72 6f 73 6f
当第13次点击忽略按钮时,debug会运行一段指令。具体是什么指令不清楚(因为运行的太快,看不清楚)。
运行完这段指令后,又出先一个和上面一样的对话框(只有CS IP OP不一样)。
这时 CS:13e9 IP:e264 OP:ff ff 51 13 db
当第14次点击忽略按钮后,debug又会运行一段指令,具体是什么指令不清楚(因为运行的太快,看不清楚)。这次运行完指令后,不弹出对话框了,但是command已经处于不能用的状态(即不管我按什么,在光标处都不会出现字符,而且光标也不闪烁的状态了)只有关闭command。
第14次点击忽略,debug又会运行一段指令,指令运行完后,CPU中各寄存器的值及显示的指令如下:
AX=F3F0 BX=0000 CX=0000 DX=2074 SP=E265 BP=0001 SI=1509 DI=FFFF
DS=0545 ES=0000 SS=0000 CS=229C IP=7414
229c:7414 0000 ADD [BX+SI],AL
在我进入command时(编写实验二的指令代码前),用debug查看CPU中各寄存器的值及显示的指令如下(即初始状态时CPU中各寄存器的值及显示的指令):
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1477 ES=1477 SS=1477 CS=1477 IP=0100
1477:0100 883E1E99 MOV [991E],BH
我机器有点古董了,但这些东西都是基于8086CPU的,应该是没问题的,小弟实在想不明白,
请高手指点指点,谢谢!! |