即字元串傳送指令,這條指令按位元組傳送數據。通過SI和DI這兩個暫存器控制字元串的源地址和目標地址,比如DS:SI這段地址的N個位元組複製到ES:DI指向的地址,複製後DS:SI的內容保持不變。
使用方法
MOVSB 的英文是 move string byte,意思是搬移一個位元組,它是把 DS:SI 所指地址的一個位元組搬移到 ES:DI 所指的地址上,搬移後原來的內容不變,但是原來 ES:DI 所指的內容會被覆蓋而且在搬移之後 SI 和 DI 會自動地址向下一個要搬移的地址。 一般而言,通常程序設計師一般並不會只搬一個位元組,通常都會重複許多次,如果要重複的話,就得把重複次數 ( 也就是字串長度 ) 先記錄在 CX 暫存器,並且在 MOVSB 之前加上 rep 指令,REP 是重複 (repeat) 的意思。這種寫法很是奇怪,一般而言彙編語言源檔案的每一行都只有一個指令,但 REP MOVSB 卻可以在同一行寫兩個指令,當然分開寫也是一樣的。
例如:
MOV CX ,100
LEA SI,FIRST
LEA DI,SECOND
REP MOVSB
以上程式段的功能是從緩衝區FIRST傳送100個位元組到SECOND緩衝區.