方向旗標
外观
此條目需要补充更多来源。 (2025年9月) |
方向旗標(direction flag)是控制連續位置記憶體讀寫時,記憶體位置遞增或是遞減的旗標,在字符串處理中則對應從左到右(從最前面往後處理)或是從右到左(從最後面往前處理)[1],在x86相容的中央处理器裡,FLAGS暫存器都有此位元[2],其位元序是10。
處理随机存储器中連續位置的多個位址時,會用方向旗標控制位址增加或是減少。若在複製資料,且來源區塊和目標區塊有部份重疊時,方向旗標就很重要。
- 若方向旗標設為0(利用x86指令
CLD清除方向旗標):這表示從位址最小的記憶體開始處理,這種指令稱為「自動遞增」模式。若是使用MOVS指令,其來源索引和目的索引都會同時增加。 - 若方向旗標設為1(利用{
STD設定方向旗標):這表示從位址最大的記憶體開始處理,這種指令稱為「自動遞減」模式。
| X86指令 | 意義 | 旗標 | 註解 | |
|---|---|---|---|---|
| 字串處理方向 | 模式 | |||
CLD
|
清除方向旗標 | 0 | 從最低記憶體位置開始 | 自動遞增 |
STD
|
設定方向旗標 | 1 | 從最高記憶體位置開始 | 自動遞減 |