首页
社区
课程
招聘
[旧帖] [求助]串指令的疑问 0.00雪花
2007-11-4 18:03 3905

[旧帖] [求助]串指令的疑问 0.00雪花

2007-11-4 18:03
3905
串传送指令MOVS、MOVSB、MOVSW、MOVSD
串比较指令CMPS、CMPSB、CMPSW、CMPSD
串扫描指令SCAS、SCASB、SCASW、SCASD
存串指令STOS、STOSB、STOSW、STOSD
取串指令LODS、LODSB、LODSW、LODSD

其中有些指令有Byte、Word、DWord的后缀

但没有后缀的指令到底是否存在?如MOVS、CMPS、SCAS、STOS、LODS,它们到底在CPU中存在吗?是资料为了方便而简写的吗?如果存在,它们与带有后缀的指令有什么区别?

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

收藏
免费 0
打赏
分享
最新回复 (5)
雪    币: 177
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ysfeagle 2007-11-4 18:47
2
0
肯定是有的呀
你前面的那些不就没有后缀的嘛~~
你要是加上那些所谓的后缀的话,指令的助记符后面是不能写上操作数的
就是MOVS DATA1,DATA2是可以的
但是MOVSB DATA1,DATA2是错误的
可以写成MOVSB(前面可以加个REP做重复用)
呵呵
更详细的你可以上网查下的
呵呵
但愿这些对你是有用的
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冰七灵 2007-11-4 19:08
3
0
就是说没有后缀的指令可以带操作数,可是这样有什么用处呢?
雪    币: 177
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ysfeagle 2007-11-4 20:18
4
0
呵呵
要是没有后缀的话,指令给出了源操作数和目的操作数,
列出操作数的好处在于:
一:明确操作对象的大小,
二:明确指出了涉及的段寄存器
这个不带后缀的主要的好处是可以对源字符串进行段重设(目标字符串是不能重设的,因为他的段地址只能是ES;源操作数通常在现行的数据段,隐含段寄存器DS)
也就是说你可以这么做
MOVS BUF1,ES:BUF2
呵呵
其实你要是想用隐含的段,那就没有必要这么做了
你要是想把操作对象的大小以及涉及的段寄存器写出来的话,那你就可以用不带后缀的
你要是不想的话,就可以用后缀了
不知道这样的解答你能不能满意?
其实你可以查下详细的解答的~~
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冰七灵 2007-11-4 20:31
5
0
满意,谢谢。
雪    币: 177
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ysfeagle 2007-11-4 20:40
6
0
不用的
互相学习~~
游客
登录 | 注册 方可回帖
返回