movsb movsw movsd 指令详解
movsb movsw movsd 指令詳解
這三個(gè)指令,都是數(shù)據(jù)傳送指令,都是從源地址向目的地址傳送數(shù)據(jù)。
16位模式下:
源地址是DS:SI,目的地址是ES:DI
32位模式下:
源地址是DS:ESI,目的地址是ES:EDI
注意:在傳送完成之后,SI和DI(或者ESI和EDI)會增加或者減小。
當(dāng)DF=0 時(shí),表示正向傳送,傳送之后SI和DI(或者ESI和EDI)的值會增加;
當(dāng)DF=1 時(shí),表示反向傳送,傳送之后SI和DI(或者ESI和EDI)的值會減小;
他們的區(qū)別是:
MOVSB:傳送一個(gè)字節(jié),之后SI和DI(或者ESI和EDI)加/減1
MOVSW:傳送一個(gè)字,之后SI和DI(或者ESI和EDI)加/減2
MOVSD:傳送一個(gè)雙字,之后SI和DI(或者ESI和EDI)加/減4
單純的movsb/ movsw/ movsd只能執(zhí)行一次,如果希望處理器自動地反復(fù)執(zhí)行,可以加上指令前綴rep;在寄存器CX(16位模式)或者ECX(32位模式)中設(shè)置傳送的次數(shù)。當(dāng)CX/ECX不等于0時(shí),則執(zhí)行movsb/ movsw/ movsd,執(zhí)行后,CX/ECX的值減一,直到減為0為止。
【end】
總結(jié)
以上是生活随笔為你收集整理的movsb movsw movsd 指令详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GLUT及其函数的用法整理
- 下一篇: 汇编实验2.2 查找匹配字符串(附有详细