ds和es是段寄存器,si和di是变址寄存器
ds和si组成:ds:si
es和di组成:es:di
常用把地址的值赋值给另地址。
ds:si ==》es:di
这里还应用到cx,表示赋值的长度。
其过程就是:
伪代码如下:
while(1)
{
[es:di] = [ds:si]
di++
si++
cx--
}
其汇编如下:
mov ax,0 ;// 将ds段寄存器置为00h
mov ds,ax
mov ax,0x1000 ;// 将es段寄存器置为1000h
mov es,ax
mov cx,256 ;// 移动计数值 = 256字 = 512 字节
sub si,si ;// si清0,自己减自己就是0
sub di,di ;// di清0
rep movsw //这句的意思是每次赋值一个字,即si+=2,di+=2,cx--
上述代码的意思就是把从地址0:0000开始的数据赋值到 1000h:0000h,赋值512个字节的数据。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/117245.html