|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 汇编论坛 』
→ 新学汇编,问个问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
980
人关注过本帖
标题:
新学汇编,问个问题
只看楼主
加入收藏
assassion123
等 级:
论坛游民
帖 子:11
专家分:11
注 册:2012-11-14
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:7
新学汇编,问个问题
sub ax,ax的机器码为2个字节
mov ax,0的机器码为3个字节
能解释下么?
2012-11-14 10:44
举报帖子
使用道具
赠送鲜花
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
2
楼
收藏
得分: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
等 级:
论坛游民
帖 子:11
专家分:11
注 册:2012-11-14
第
3
楼
收藏
得分: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
等 级:
新手上路
帖 子:3
专家分:0
注 册:2012-11-15
第
4
楼
收藏
得分:0
时间间隔要看指令的而执行时间的
2012-11-15 13:20
举报帖子
使用道具
赠送鲜花
hu9jj
来 自:红土地
等 级:
贵宾
威 望:
400
帖 子:11857
专家分:43421
注 册:2006-5-13
第
5
楼
收藏
得分:0
这是CPU指令系统设计的时候确定的,指令的字节长度不完全一样,有双字节指令,也有大于双字节的指令。
sub ax,ax 是寄存器内的数据运算,所以两个字节就可以表示。
mov ax,0 是立即数与寄存器两者之间的数据运算(赋值运算),因为还需要两个字节来存放立即数0,所以指令的长度会大于2.
活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-11-15 14:24
举报帖子
使用道具
赠送鲜花
有容就大
来 自:东土大唐
等 级:
版主
威 望:
74
帖 子:9048
专家分:14309
注 册:2011-11-11
第
6
楼
收藏
得分:0
回复 5楼 hu9jj
mov al, 0呢?
梅尚程荀
马谭杨奚
2012-11-16 00:03
举报帖子
使用道具
赠送鲜花
assassion123
等 级:
论坛游民
帖 子:11
专家分:11
注 册:2012-11-14
第
7
楼
收藏
得分:0
回复 5楼 hu9jj
对啊,那为什么“mov al,0”Ip的变化是2不是3呢?
2012-11-16 08:33
举报帖子
使用道具
赠送鲜花
小石汇编
等 级:
新手上路
帖 子:3
专家分:7
注 册:2012-11-5
第
8
楼
收藏
得分: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
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
新学汇编,问个问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016532 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved