格式:可有三種
MOVS DST,SRC
MOVS(字節)
MOVSW(字)
其中第二,三種格式明確地注明是傳送字節或字,第一種格式則應在操作數中表明是字還是字節操作,例如:
MOVS ES:BYTE PTR[DI],DS:[SI]
實際上MOVS的尋址方式是隱含的(這在下面所招待的操作中可以看到),所以這種格式中的DST及SRC只提供給匯編程序作類型檢查用,並且不允許用其他尋址方式來確定操作數。
執行的操作:
1) ((DI))←((SI))
2) 字節操作:
(SI)←(SI)±1,(DI)←(DI)±1
當方向標志DF=0時用+,當方向標志DF=1時用-。
3) 字操作:
(SI)←(SI)±2,(DI)←(DI)±2
當方向標志DF=0時用+,當方向標志DF=1時用-。
該指令不影響條件碼。
MOVS指令可以把由(SI)指向的數據段中的一個字(或字節)傳送到由(DI)指向的附加段中的一個字(或字節)中去,同時根據方向標志及數據格式(字 或字節)對SI和DI進行修改。當該指令與前綴REP聯用時,則可將數據段中的整串數據傳送到附加段中去。這里源串必須在數據段中,目的串必須在附加段 中,但源串允許使用段跨越前綴來修改。在與REP聯用時還必須先把數據串的長度送到CX寄存器中,以便控制指令結束。因此在執行該指令前,應該先做好以下 准備工作:
1) 把存放於數據段中的源串首地址(如反向傳送則應是末地址)放入SI寄存器中;
2) 把將要存放數據串的附加段中的目的串首地址(或反向傳送時的末地址)放入DI寄存器中;
3) 把數據串長度放入CX寄存器;
4) 建立方向標志。
在完成這些准備工作后就可使用串指令傳送信息了。
為了建立方向標志,這里介紹兩條指令。