8086中方向标记的用法

时间:2018-12-28 18:29:29

标签: assembly x86-16

我已经在书中读到,当SI寄存器小于DI寄存器(在字符串操作中)时,方向标志等于0,否则方向标志等于1。

但是我也已经阅读到指令通常不会更改方向标志,所以它的确切用法是什么?我们应该根据字符串的第一个和最后一个索引设置或取消设置此标志吗? (我们应该处理此标志还是让CPU处理?)

我在上述陈述中错了吗?

1 个答案:

答案 0 :(得分:4)

CPU从不自动设置或清除方向标志。那只能通过软件来完成。

CPU在执行字符串指令时使用方向标志来确定是递增{{1}还是递减SI

通常DI始终保持清除状态。在使用应减小DFDF的字符串指令之前,软件应先设置SI

您可能希望递减DISI的一个原因是在执行内存复制时,其中缓冲区重叠并且源地址小于目标地址。在这种情况下,普通的正向副本将在读取之前覆盖源缓冲区的一部分,而反向副本将起作用。