. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第三章的检测题的第3题,mov [bx],ax中,[bx]的意思?  [已解决] 回复[ 2次 ]   点击[ 473次 ]  
sysop
[帖 主]   [ 发表时间:2008-12-09 16:37 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2008-06-04 14:46
第三章的检测题的第3题
能够将ax中的内容送到内存0000:0200H处的指令序列是____。                                
        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个。我是用排除法选择的。
第1选择 直接给ds赋值是错误的。
第2选择 算出来得地址,肯定不是0200
第3选择 修改了ax的值,
所以选择第4。

但是我搞不明白的就是,第4选择,我查了一下 [bx]的用法,
说mov [bx],ax的意思是将ax的值付给 ds:bx内容作为偏移地址。
那么,我们来确定一下第4选择执行的时候的寄存器的变化:
                   ax        bx        ds
 mov bx,20h        ax值不变        0020H        
 mov ds,bx        ax值不变        0020H        0020H
 mov bx,0        ax值不变        0000H        0020H
 mov [bx],ax        ax值不变                0020H

那么,ds:[bx]代表的地址是 0020:0000H,并非题目要求的0000:0200H!
所以,问题出在对[bx]理解上?
[bx]到底代表什么意思?
sysop
[第1楼]   [ 回复时间:2008-12-09 16:39 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2008-06-04 14:46
。。。
我明白了,
其实 0000:0200H代表的是地址为:00200H
0020:0000H,计算出来的,也是00200H,
晕,自己绕迷糊了。。。
sysop
[第2楼]   [ 回复时间:2008-12-10 07:53 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2008-06-04 14:46
此贴由 贴主 于 [ 2008-12-10 07:53 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved