|
主题 : : 检测点3.1中第二题上机疑问~ [待解决] |
回复[ 17次 ]
点击[ 462次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2011-08-30 16:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
为什么检测点3.1中第二题上机debug运行错误呢?
进入debug,用R命令把CS改为2000H,ip=0,ds=1000H,ax=0,bx=0
然后a 2000:0进入20000地址处
2000:0000 mov ax,6622
2000:0003 jmp 0ff0:0100
2000:0008 mov ax,2000
2000:000B mov ds,ax
2000:000D mov ax,[0008]
2000:0010 mov ax,[0002]
以上输入正确吗?
如果正确,为什么我用T命令运行时到第三步也就是jmp offo:0100下面就不行了,出不来mov ax,2000这一步了,为什么?
在纸上我会计算。 | | |
|
|
|
|
[第1楼]
[ 回复时间:2011-08-30 16:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
难道从2000:0003 jmp 0ff0:0100下面要手动把20000的地址改了吗? | | |
|
|
|
|
[第2楼]
[ 回复时间:2011-08-30 16:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59 |
你跳到别的地方了,0ff0:100=1000:0,当然不会执行下一句啦。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2011-08-31 08:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
|
|
|
|
|
[第4楼]
[ 回复时间:2011-08-31 08:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
怎么DEBUG才正确?上机操作的高人呢?我这等了一晚上了。 | | |
|
|
|
|
[第5楼]
[ 回复时间:2011-08-31 09:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-01-17 19:05 |
是你没看清书上的题目。前两句是在20000H上,但后四句是在10000H上的。 | | |
|
|
|
|
[第6楼]
[ 回复时间:2011-08-31 10:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
我是问上机DEBUG的操作,不是问书上,我书上明白,郁闷~高手,看清我问的在来,谢谢 | | |
|
|
|
|
[第7楼]
[ 回复时间:2011-08-31 10:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
这个题上机怎么来输入,请教~难道没人上机试过??????? | | |
|
|
|
|
[第8楼]
[ 回复时间:2011-08-31 10:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:6
注册日期:2011-06-01 16:20 |
没看懂你问的什么?
如果你问T为什么不执行mov ax,2000
因为你上一句都已经jmp了,它去执行ff0:100去了。怎么会执行下一句。 | | |
|
|
|
|
[第9楼]
[ 回复时间:2011-08-31 10:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
我的意思是JMP过后下面的指令应该如何输,这样才能让指令按题目运行下去 | | |
|
|
|
|
[第10楼]
[ 回复时间:2011-08-31 10:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:6
注册日期:2011-06-01 16:20 |
2000:0003 jmp 0ff0:0100
你看这条指令: jmp 0ff0:0100
你现在在看第3章,先别管这条指令的含意及处理过程。
你学到第9章就会明白了。
貌似第3章没这吧。 | | |
|
|
|
|
[第11楼]
[ 回复时间:2011-08-31 10:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
难道从2000:0003 jmp 0ff0:0100下面要手动把20000的地址改了吗?
------------------
回复: | | |
|
|
|
|
[第12楼]
[ 回复时间:2011-08-31 10:40 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
|
|
|
|
|
[第13楼]
[ 回复时间:2011-08-31 10:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57 |
2000:0003 jmp 0ff0:0100
你看这条指令: jmp 0ff0:0100
你现在在看第3章,先别管这条指令的含意及处理过程。
你学到第9章就会明白了。
貌似第3章没这吧。
------------------
回复:谢谢,不过JMP 段地址:偏移地址第2.11课就讲到了,呵呵。这道题上机真是不明白,算了,还需努力啊~ | | |
|
|
|
|
[第14楼]
[ 回复时间:2012-02-28 23:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-02-19 19:44 |
你要把mov ax,2000H 这代码写在 10000H内存地址才会执行,
你的 2000:0008 mov ax,2000 很明显就不在这个地址,所以不会执行你这一句,而是执行了10000H的那句 | | |
|
|
|
|
[第15楼]
[ 回复时间:2012-04-01 22:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-03-31 17:30 |
|
|
|
|
|
[第16楼]
[ 回复时间:2012-04-01 22:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-03-31 17:30 |
应该是2000:0008 mov bx,ax
然后是:
-a 1000:0
1000:0000 mov ax,2000
1000:0003 mov ds,ax
1000:0005 mov ax,[0008]
1000:0008 mov ax,[0002] | | |
|
|
|
|
[第17楼]
[ 回复时间:2012-06-12 11:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-02-21 22:36 |
我用T命令运行时到第三步也就是jmp offo:0100下面就不行了,出不来mov ax,2000这一步了
因为jmp offo:0100,CS:IP 0ff0*16+0100=物理地址(1000:0)指向的不是mov ax,2000这一步,所以不会继续执行 | | |