当前位置: 代码迷 >> 汇编语言 >> 请帮忙解读一段初级汇编程序解决方案
  详细解决方案

请帮忙解读一段初级汇编程序解决方案

热度:3753   发布时间:2013-02-26 00:00:00.0
请帮忙解读一段初级汇编程序
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
------解决方案--------------------------------------------------------
探讨
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
  相关解决方案