首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2012-04-13 
请帮忙解读一段初级汇编程序Assembly code__asm{pusha//将寄存器弹入堆栈push es//将ES弹入堆栈mov ax,Add

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

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

热点排行