. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(内存访问)
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
能够将ax中的内容送到内存0000:0200H处的指令序列是_4_。
[已解决]
回复[
6
次 ] 点击[
420
次 ]
grc10010010
[帖 主]
[ 发表时间:2011-08-31 11:26 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:13
注册日期:2011-07-13 08:38
1、 mov ds,0
mov bx,200h
mov [bx],ax
2、 mov ax,200h
mov ds,ax
mov bx,0
mov [bx],ax
3、 mov ax,20h
mov ds,ax
mov bx,0
mov [bx],ax
4、 mov bx,20h
mov ds,bx
mov bx,0
mov [bx],ax
此题的正确答案为4,ds中存放的是偏移地址吗?mov [bx],ax中的[bx]是段地址吗?书本上有mov [0],ax的语句,其中的[0]是偏移地址,段地址放在ds中,这2种mov指令格式的内存地址表示方法正好相反吗?
grc10010010
[第
1
楼]
[ 回复时间:2011-09-01 09:49 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:13
注册日期:2011-07-13 08:38
根据答案4的指令,首先bx=0020H,然后ds=bx=0020H,然后bx=0,此时mov [bx],ax的内存段地址为ds=0020H,偏移地址为bx=0,所以ax送入的内存地址应该是0020:0000,但结果为什么是0000:0200呢?
grc10010010
[第
2
楼]
[ 回复时间:2011-09-01 10:40 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:13
注册日期:2011-07-13 08:38
搞明白了,因为0020:0000=0000:0200。
12345678911
[第
3
楼]
[ 回复时间:2011-09-25 00:51 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2011-08-26 20:17
那ax是多少mov [bx],ax 怎么理解?
chinatree
[第
4
楼]
[ 回复时间:2011-09-25 00:58 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
不管它是多少,只要把ax送到那就行了。
xingkong
[第
5
楼]
[ 回复时间:2011-09-25 08:40 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:1
信誉值:0
注册日期:2011-09-24 16:34
这个我刚做过,我想选项
mov ax,20h
mov ds,ax
mov bx,0
mov [bx],ax
错的原因应该是mov ax,20h 把ax中的内容用20h替代了,最后送到目的地址的已经不能算是ax中的内容了,只是目的地址的偏移地址
grc10010010
[第
6
楼]
[ 回复时间:2011-11-28 07:56 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:13
注册日期:2011-07-13 08:38
此贴由 贴主 于 [ 2011-11-28 07:56 ] 结贴。 结贴原因:问题已解决
得分情况: 5楼(xingkong):1分
此问题已结贴!
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved