2012-02-18 9 views
9

के बाद मैं अगले निर्देश है:विधानसभा JZ अनुदेश सीएमपी

cmp al, 1 
jz mub 

जब अल 2 (बाइनरी में 10) है। यह निर्देश क्या करेगा? जैसा कि मुझे पता है, मैं जेई, जेएनई, जेए इत्यादि का उपयोग कर सकता हूं, लेकिन सीएमपी निर्देश के बाद जेज़ का क्या अर्थ है?

धन्यवाद

+0

jz = je, यह वही निर्देश है। –

उत्तर

16

jz "शून्य अगर कूदें" है। cmp अपने दो ऑपरेंड घटाता है, और तदनुसार झंडे सेट करता है। (संदर्भ के लिए here देखें।)

यदि दो ऑपरेंड बराबर हैं, तो घटाव शून्य हो जाएगा और ZF ध्वज सेट किया जाएगा।

तो आपके नमूने में, al 1 था, तो कूद लिया जाएगा, अन्यथा नहीं लिया गया।

3

jz का मतलब कूद शून्य है। इस संदर्भ में, यह केवल al था।

ऐसा इसलिए है क्योंकि cmp आमतौर पर sub (घटाना) के बराबर है लेकिन वास्तव में मूल्य को बदलने के बिना।

cmp al, 1 क्या होगा यदि आप al से 1 घटाएंगे तो क्या होगा, इस पर आधारित प्रोसेसर झंडे (शून्य ध्वज सहित) सेट करेंगे।

यदि al 2 है, तो कूद नहीं लिया जाएगा (क्योंकि शून्य ध्वज सेट नहीं किया गया है) और कोड jz के बाद निर्देश पर निष्पादित करना जारी रहेगा।

एक अलग रूप में के रूप में, jz अक्सर हीje बाद से वे प्रभावी ढंग से एक ही बात मतलब है के रूप में opcode है। उदाहरण Wikipedia page on x86 control flow के लिए देखें: शून्य पर

कूद
jz loc
भार, निर्दिष्ट पते के साथ EIP शून्य सा पिछले एक अंकगणितीय अभिव्यक्ति से सेट किया गया है। जे जे जे के समान है।

1

'जंप शून्य' - शून्य ध्वज सेट होने पर 'mub' लेबल पर कूदें। 'cmp' एक घटाव है जो केवल & झंडे सेट करता है, इसलिए यदि अल 2 है, (2-1) <> 0 तो शून्य ध्वज स्पष्ट है और कूद नहीं की जाएगी।

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