- Assembly code
__asm { pusha //将寄存器弹入堆栈 push es //将ES弹入堆栈 mov ax,Addr //将Addr赋给AX,Addr是内存地址 mov es,ax //将Addr传给ES mov ecx,0 //ECX设置为0 mov cx,Len //设置counter,Len是数据长度 mov esi,lpSrc//lpsrc指向一段数据,长度为Len;Source Index? mov edi,0 //Destination Index cld //SI,DI+1 rep movsd //传送DWORD数据:是将lpsrc开始的数据丢给哪? pop es //弹出ES popa //弹出寄存器 }
程序如上,作用是将lpsrc指向的Len长数据传给PCI.
我不能很清晰的理解
特请教.谢谢!
------解决方案--------------------------------------------------------
cld;清除向标志位
rep movsd;将DS:[esi]的值装入ES:[edi],执行后ecx减1,esi,edi加1,直到ecx为0为止.相当于
mov ecx,len
S:
mov byte ptr es:[edi],ds:[esi]
inc esi
inc edi
loop s
------解决方案--------------------------------------------------------