| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1032 人关注过本帖
标题:一道汇编基础题请指教
只看楼主 加入收藏
leanrose
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-7
收藏
 问题点数:0 回复次数:4 
一道汇编基础题请指教

d 0:0 1f命令查看内存,结果如下:
0000:0000 70 80 f0 30 40 ef 80 87-00 e2 80 65 78 e3 4d 1a
0000:0010 62 26 e6 d6 cc 2e 3c 3b-ab ba 45 3e df 1d ds fd
ax=0,bx=0,写出寄存器的值
mov ax,1
mov ds,ax
mov ax,[0000] ax=?
mov bx,[0001] bx=?
mov ax,[0002] ax=?

有人得到答案如下:
AX 2662H
BX 0E626H
AX 2662H+0D6E6H=0FD48H
最后一个AX怎么会是AX+BX的值了?

搜索更多相关主题的帖子: 汇编 寄存器 内存 基础 指教 
2007-09-07 01:30
liyun2060
Rank: 2
等 级:新手上路
威 望:3
帖 子:22
专家分:0
注 册:2007-9-2
收藏
得分:0 
dae6
具体是多少 你自己做个程序 运行下就知道了啊

2007-09-07 08:35
leanrose
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-7
收藏
得分:0 
不懂原理啊
2007-09-07 08:48
leanrose
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-7
收藏
得分:0 
d6e6把?
2007-09-07 09:15
hkbyest
Rank: 1
等 级:新手上路
威 望:2
帖 子:30
专家分:0
注 册:2007-6-14
收藏
得分:0 

0000:0010 62 26 e6 d6 cc 2e 3c 3b-ab ba 45 3e df 1d ds fd

段地址ds=1,转成线性地址是1×10h=10h,

mov ax,[0002] ax=?
等同于 mov ax,ds:[0002],
这里表示的是1:[0002],1×10h+2h=12h,表示10h开始的地址偏移2字节,也就是上面数据的e6处,
ax是16位寄存器(16位=两字节),所以是把e6和后面的一字节数据放到ax中,又因为x86处理器使用小尾或称小端的数据表示方式,低位数据在前,
所以综合起来结果就是ax=0d6e6H,masm语法规定16进制数据第一位为字母的前面要加0。

这就是原理,不知道楼主懂了没。

2007-09-09 23:09
快速回复:一道汇编基础题请指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045931 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved