STOS指令
<h2>STOS指令:将Al/AX/EAX的值存储到[EDI]指定的内存单元</h2>
<h4>STOS BYTE PTR ES:[EDI] 简写为STOSB</h4>
<h4>STOS WORD PTR ES:[EDI] 简写为STOSW</h4>
<h4>STOS DWORD PTR ES:[EDI] 简写为STOSD</h4>
<h6>操作AL/AX/EAX中的哪一个寄存器,看指令操作的B(1字节)、W(2字节)、D(4字节)中的哪一个。STOS指令同样受DF标志位的影响,当DF=1时,EDI的值会自减,当DF=0时,EDI的值会自增。</h6>
<h6>用到EDI时,统一使用ES段寄存器。</h6>
<hr />
<hr />
<h3>例1:</h3>
<p> <code>MOV EAX,12345678</code></p>
<p> <code>MOV EDI,18FF8C</code></p>
<p> <code>STOS DWORD PTR ES:[EDI]</code></p>
<p> <code>STOS WORD PTR ES:[EDI]</code></p>
<p> <code>STOS BYTE PTR ES:[EDI]</code></p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/d4452d5bd9533366304b5f475cf44e9c" alt="" /></p>
<p>执行后如下图:</p>
<h5>EDI的值根据DF标志位自减4字节,<code>STOSD 指令</code>将<code>EAX中的值</code> 存储到了<code>ES:[EDI]</code>中。</h5>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/fd097cdb0902ec575d2f188c8c6912d7" alt="" /></p>