. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点3.1中第二题上机疑问~  [待解决] 回复[ 17次 ]   点击[ 462次 ]  
kliks
[帖 主]   [ 发表时间: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这一步了,为什么?

在纸上我会计算。
kliks
[第1楼]   [ 回复时间:2011-08-30 16:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57
难道从2000:0003 jmp 0ff0:0100下面要手动把20000的地址改了吗?
chinatree
[第2楼]   [ 回复时间:2011-08-30 16:52 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
你跳到别的地方了,0ff0:100=1000:0,当然不会执行下一句啦。
kliks
[第3楼]   [ 回复时间:2011-08-31 08:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57
跳到别的地方?还是不太明白啊,求师兄解答啊~
kliks
[第4楼]   [ 回复时间:2011-08-31 08:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57
怎么DEBUG才正确?上机操作的高人呢?我这等了一晚上了。
nanqi
[第5楼]   [ 回复时间:2011-08-31 09:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-17 19:05
是你没看清书上的题目。前两句是在20000H上,但后四句是在10000H上的。
kliks
[第6楼]   [ 回复时间:2011-08-31 10:16 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57
我是问上机DEBUG的操作,不是问书上,我书上明白,郁闷~高手,看清我问的在来,谢谢
kliks
[第7楼]   [ 回复时间:2011-08-31 10:20 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57
这个题上机怎么来输入,请教~难道没人上机试过???????
rotapple
[第8楼]   [ 回复时间:2011-08-31 10:28 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:6
注册日期:2011-06-01 16:20
没看懂你问的什么?
如果你问T为什么不执行mov ax,2000
因为你上一句都已经jmp了,它去执行ff0:100去了。怎么会执行下一句。
kliks
[第9楼]   [ 回复时间:2011-08-31 10:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57
我的意思是JMP过后下面的指令应该如何输,这样才能让指令按题目运行下去
rotapple
[第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章没这吧。
kliks
[第11楼]   [ 回复时间:2011-08-31 10:38 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57
难道从2000:0003 jmp 0ff0:0100下面要手动把20000的地址改了吗?
------------------
回复:
kliks
[第12楼]   [ 回复时间:2011-08-31 10:40 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-10 09:57
。。。哦,看来是我钻牛角尖了
kliks
[第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课就讲到了,呵呵。这道题上机真是不明白,算了,还需努力啊~
mmloster
[第14楼]   [ 回复时间:2012-02-28 23:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-02-19 19:44
你要把mov ax,2000H 这代码写在 10000H内存地址才会执行, 
你的 2000:0008 mov ax,2000   很明显就不在这个地址,所以不会执行你这一句,而是执行了10000H的那句
zhanyue4
[第15楼]   [ 回复时间:2012-04-01 22:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-03-31 17:30
你的程序从2000:0008以后就写错了
zhanyue4
[第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]
walykyy
[第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这一步,所以不会继续执行
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved