鱼C论坛

 找回密码
 立即注册
查看: 3220|回复: 0

[技术交流] 汇编指令MOVSD和MOVSL

[复制链接]
发表于 2013-12-15 09:58:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

MOVSD和MOVSL两个指令均是对字符串进行双字传送。两者的区别:Intel文档使用MOVSD传送双字,而GNU文档使用MOVSL传送双字。


例如:linux内核buffer.c中一段代码。

#define COPYBLK(from,to) \
__asm__("cld\n\t" \
"rep\n\t" \
"movsl\n\t" \
::"c" (BLOCK_SIZE/4),"S" (from),"D" (to) \
:"cx","di","si")


这里的BLOCK_SIZE是一个逻辑块的大小,为1024字节。这里的嵌入汇编没有输出寄存器,输入寄存器分别是CX、SI、DI,改变的寄存器也是这三个寄存器。

还有一点,rep movsl和

rep

movsl

等价


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 16:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表