跳转到内容

方向旗標

维基百科,自由的百科全书

方向旗標(direction flag)是控制連續位置記憶體讀寫時,記憶體位置遞增或是遞減的旗標,在字符串處理中則對應從左到右(從最前面往後處理)或是從右到左(從最後面往前處理)[1],在x86相容的中央处理器裡,FLAGS暫存器英语FLAGS register都有此位元[2],其位元序英语bit numbering是10。

處理随机存储器中連續位置的多個位址時,會用方向旗標控制位址增加或是減少。若在複製資料,且來源區塊和目標區塊有部份重疊時,方向旗標就很重要。

  • 若方向旗標設為0(利用x86指令英语x86 instruction listingsCLD清除方向旗標):這表示從位址最小的記憶體開始處理,這種指令稱為「自動遞增」模式。若是使用MOVS指令,其來源索引和目的索引都會同時增加。
  • 若方向旗標設為1(利用{STD設定方向旗標):這表示從位址最大的記憶體開始處理,這種指令稱為「自動遞減」模式。
X86指令英语X86 instruction listings 意義 旗標 註解
字串處理方向 模式
CLD 清除方向旗標 0 從最低記憶體位置開始 自動遞增
STD 設定方向旗標 1 從最高記憶體位置開始 自動遞減

參考資料

[编辑]