beq指令,arm mov指令

MOVSB、MOVSW和MOVSD指令将数据从ESI指向的内存位置复制到EDI指向的内存位置。 [根据方向标志位的值]这两个寄存器会自动增加或减少。

cld设置方向标志位DF为0,每次复制完成时esi、edi自动增加,指向下一个地址.

std置位方向标志位DF为1,每当复制完成时,esi、edi自动减少,指向下一个地址.

关于esi、edi,增加或减少多少字节,由movsb/movsw/movsd最后的哪个文字决定。

movsb以字节格式复制,逐字节复制,esi/edi自动增加或减少一个字节

movsw作为字复制,一个字(两个字节)复制,esi/edi自动增加或减少两个字节

movsd以双字格式复制,每复制两个字(4字节),esi/edi自动增加或减少4字节

这些命令通常与rep (repeat )命令结合使用以表示重复副本

rep movs byte ptr es:[edi],byte ptr ds:[esi]简称: rep movsb

rep movs word ptr es:[edi],word ptr ds:[esi]简称: rep movsw

rep movs dword ptr es:[edi],dword ptr ds:[esi]简称: rep movsd

复制多少次由ecx决定.2.STOS指令:将Al/AX/EAX的值存储到[EDI]指定的存储器单元中

STOS BYTE PTR ES:[EDI]简称STOSB

STOS WORD PTR ES:[EDI]简称STOSW

STOS DWORD PTR ES:[EDI]简称STOSD

具体来说,在AL/AX/EAX中,取决于具体的宽度是多少。 执行命令后,edi的值也会增加或减少相应的字节数。 这取决于方向标志位DF的值。 DF=0,edi增加,DF=1,edi减少。 与movs命令类似。

STOS命令也与REP配合使用。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注