. : : 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