首页
社区
课程
招聘
[求助]学习汇编基础的一个问题
发表于: 2014-11-13 23:42 2494

[求助]学习汇编基础的一个问题

2014-11-13 23:42
2494
(4)能够将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  ,但是我不理解,我从书中看到的是
要将数据放到0000:0020H ,
那么 ds应该为0,但答案的4中ds 的值是ax的值20,赋予的。 ds=0020
那么mov [bx],ax  [bx] --> 0020:0000 这样呀是访问不了的啊。求解

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 218
活跃值: (228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
16位汇编果断抛弃啊。。。。
2014-11-14 09:10
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
题目是错的
2014-11-14 09:12
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
首先内存0000:0200H处,它指的是物理地址,而mov [bx],ax的意思是,是把AX放入DS:BX表示的内存地址:即DS*16+BX=0x20H*16+0=0x200H,也就是内存地址0000:0200H。

说白了这个题目考察的是寄存器表示的地址,如何转换成内存地址。
2014-11-14 10:26
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你好,我后来才弄懂,是我自己进了思维误区。 以为应该[0200]才对。 没想过 ds=0020:0000= 00200.谢谢你的回答。
2014-11-14 15:10
0
游客
登录 | 注册 方可回帖
返回
//