2015-05-10 6 views
5

निष्पादन योग्य को अलग करने के लिए मुझे cmove निर्देश का सामना करना पड़ा। मैंने पहले से ही इंटरनेट पर खोज की है लेकिन मुझे केवल यह पता चला है कि यह एक सशर्त कदम है, और यदि स्रोत और गंतव्य समान हैं तो mov होता है। जो मुझे अभी तक समझा नहीं गया है, मुझे इसकी आवश्यकता क्यों है, क्योंकि यह ऑपरेटरों को नहीं बदलता है। कृपया आप मुझे अपने उद्देश्य समझा सकता है, एक उदाहरण भी यदि आवश्यक हो तोx86 असेंबली में cmove निर्देश का उद्देश्य?

धन्यवाद

उत्तर

19

CMOVcc निर्देशों का उपयोग कर स्रोत और गंतव्य की तुलना नहीं करता है। यह पिछली तुलना (या अन्य ऑपरेशन जो झंडे सेट करता है) से झंडे का उपयोग करता है जो निर्धारित करता है कि क्या कदम किया जाना चाहिए या नहीं।

उदाहरण; इस प्रतियां edxecx के लिए अगर eax और ebx बराबर हैं:

cmp eax, ebx 
cmoveq ecx, edx 

यह रूप में एक ही है:

cmp eax, ebx 
jne skip 
    mov ecx, edx 
skip: 
+0

आप बहुत बहुत धन्यवाद – maluz

संबंधित मुद्दे