| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 980 人关注过本帖
标题:新学汇编,问个问题
只看楼主 加入收藏
assassion123
Rank: 2
等 级:论坛游民
帖 子:11
专家分:11
注 册:2012-11-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
新学汇编,问个问题
sub ax,ax的机器码为2个字节
mov ax,0的机器码为3个字节
能解释下么?
2012-11-14 10:44
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
以下是引用assassion123在2012-11-14 10:44:23的发言:

sub ax,ax的机器码为2个字节
mov ax,0的机器码为3个字节
能解释下么?

-a
0B9F:0100 sub ax,ax
0B9F:0102 mov ax,0
0B9F:0105
-u
0B9F:0100 29C0          SUB     AX,AX
0B9F:0102 B80000        MOV     AX,0000

以上是最好的解释

为啥呢 因为这里mov ax, 0实际要和ax大小一致 所以实际是mov ax, 0000 所以反而大
2012-11-14 10:54
assassion123
Rank: 2
等 级:论坛游民
帖 子:11
专家分:11
注 册:2012-11-14
收藏
得分:0 
回复 2楼 zklhp
"因为这里mov ax, 0实际要和ax大小一致 所以实际是mov ax, 0000 所以反而大"
在下愚钝,这句话不是很理解,还有是不是用"mov"时cs:ip的跳转为间隔是3,"sub"时间隔是2?

[ 本帖最后由 assassion123 于 2012-11-15 13:08 编辑 ]
2012-11-15 09:41
lyloog
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-15
收藏
得分:0 
时间间隔要看指令的而执行时间的
2012-11-15 13:20
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
这是CPU指令系统设计的时候确定的,指令的字节长度不完全一样,有双字节指令,也有大于双字节的指令。
sub ax,ax 是寄存器内的数据运算,所以两个字节就可以表示。
mov ax,0 是立即数与寄存器两者之间的数据运算(赋值运算),因为还需要两个字节来存放立即数0,所以指令的长度会大于2.

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-11-15 14:24
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 5楼 hu9jj
mov al, 0呢?

梅尚程荀
马谭杨奚







                                                       
2012-11-16 00:03
assassion123
Rank: 2
等 级:论坛游民
帖 子:11
专家分:11
注 册:2012-11-14
收藏
得分:0 
回复 5楼 hu9jj
对啊,那为什么“mov al,0”Ip的变化是2不是3呢?
2012-11-16 08:33
小石汇编
Rank: 1
等 级:新手上路
帖 子:3
专家分:7
注 册:2012-11-5
收藏
得分:0 
红土地:这是CPU指令系统设计的时候确定的,指令的字节长度不完全一样,有双字节指令,也有大于双字节的指令。
sub ax,ax 是寄存器内的数据运算,所以两个字节就可以表示。
mov ax,0 是立即数与寄存器两者之间的数据运算(赋值运算),因为还需要两个字节来存放立即数0,所以指令的长度会大于2.
*******
ax是两个字节,从而硬性的规定了mov ax,0中的0是双字节了,
同时mov al,0的al是单字节,那么mov al,0中的0是单字节。
2012-11-21 18:19
快速回复:新学汇编,问个问题
数据加载中...
 
   



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

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