. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点3.1第2小题,请教各位  [已解决] 回复[ 9次 ]   点击[ 327次 ]  
cdzjf
[帖 主]   [ 发表时间:2007-11-14 14:08 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28
根据给出的题目,写出指令序列并给出相关寄存器的值,我答如下:
初始时,CS=2000H,IP=0,所以物理地址应为:20000H
1.mov ax,6622H         IP=3,ax=6622H
2.jmp offo:0100        CS=0ff0 IP=0100
3.mov ax,2000h         IP=0103,ax=2000H
4.mov dx,ax            IP=0105,ds=2000h
不知以上是否正确
5.mov ax,[0008]         这里我就不知道IP,ax中的值该如何知晓了,所以就没有再向下做了

请各位帮忙解答,谢谢!
happy
[第1楼]   [ 回复时间:2007-11-14 19:31 ]   [引用]   [回复]   [ top ] 
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06
ax中的值就是内存地址为ds:[0008]单元中的内容,ds:[0008]单元中的内容在书上已经给出了。而cs:ip的值不是指向下一条指令的首地址吗?ip的值也就是下一条指令的偏移地址。这样提示你一下,看看下面会做了吗?
cdzjf
[第2楼]   [ 回复时间:2007-11-14 21:13 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28
这样的话:
5.mov ax,[0008] 执行完这后ax=0002a1对吗?(ds:[0008]单元中的内容),IP=0108
6.mov ax,[0002] 执行完这后ax=8e20(ds:[0002]单元中的内容),IP=0111
这样是对的吗?
donkey264
[第3楼]   [ 回复时间:2007-11-15 00:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-10-26 12:53
不对,DS的值在第4步时已经变了(4.mov dx,ax            IP=0105,ds=2000h ),而且就算没变,AX也不会等于0002A1,一个字单元是由2个地址连续的内存单元组成的,代码段与数据段虽然可以是在同一连续的内存单元上,但它们没多大关系。
cdzjf
[第4楼]   [ 回复时间:2007-11-16 11:29 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28
是的,我搞错了,没有注意到.
ax中的值就是内存地址为ds:[0008]单元中的内容,ds:[0008]单元中的内容是不是20008H所指的单元,ax=c189?
第5步mov ax,[0008] 执行完这后,IP=0108,ax=c189(如果对的话)那应该去执行的下一条是10008H单元,
6.mov ax,[0002] 执行完这后ax=8e20(ds:[0002]单元中的内容),IP=0111 (第6步完后,ax的值对吗?)
happy
[第5楼]   [ 回复时间:2007-11-16 12:57 ]   [引用]   [回复]   [ top ] 
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06
因为ds的值为2000H,[0002]的地址为20002H吧?ip的值为010BH吧?
donkey264
[第6楼]   [ 回复时间:2007-11-16 23:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-10-26 12:53
回复:[第4楼]
------------------
第6步时DS已经变成2000了,此时[0002]应指20002H处的内存单元,所以MOV AX,[0002]后,AX应为EA66,IP继续往下走,应为000BH。
cdzjf
[第7楼]   [ 回复时间:2007-11-19 10:52 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28
第6步的确应指20002H处的内存单元,执行完这后ax=EA66,IP=000BH 

但第5步中的ax=c189是对的吗?
donkey264
[第8楼]   [ 回复时间:2007-11-20 21:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-10-26 12:53
cdzjf
[第9楼]   [ 回复时间:2007-11-22 16:12 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28
此贴由 贴主 于 [ 2007-11-22 16:12 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved