Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1018569
  • 博文数量: 146
  • 博客积分: 3444
  • 博客等级: 中校
  • 技术积分: 1602
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-21 15:18
文章分类

全部博文(146)

文章存档

2014年(9)

2013年(3)

2012年(6)

2011年(44)

2010年(38)

2009年(46)

分类:

2009-05-27 21:26:40

内存数据拷贝
一、使用rep前缀,用movsb指令
movsb则是将DS:ESI(SI)中的一个字节复制到ES:EDI(DI)中,然后自动将ESI,EDI加一,rep前缀则是和loop检查ECX机制一样,ECX-1,!=0,继续,=0结束。
mov ds,SEGMENT sdata
mov esi,OFFSET sdata
mov es,SEGMENT ddata
mov edi,OFFSET ddata
mov ecx,datasize
rep movsb
 
二、使用loop方法
MOV AX,段地址1
MOV DS,AX
MOV AX,段地址2
MOV ES,AX
MOV BX,偏移地址1
MOV SI,偏移地址2
SUB AX,AX
MOV CX,复制数量(字节或字或其他)
S:MOV AX(或其他),[BX]
MOV ES:[SI],AX
ADD BX,2
ADD SI,2
LOOP S
 
但是哪一种方法执行效率高一点呢?
阅读(5011) | 评论(0) | 转发(0) |
0

上一篇:汇编中各种运算的速度

下一篇:C调用约定

给主人留下些什么吧!~~