snezछद्म

snez

छद्म
RISC-V असेंबली संदर्भ

lyszt.net snez और अन्य RISC-V निर्देशों को अधिक विस्तार से कवर करता है।

विवरण

snez परीक्षण करता है कि किसी रजिस्टर में शून्य के अलावा कोई मान है या नहीं, जो seqz का व्युत्क्रम है। नाम का अर्थ है सेट इफ नॉट इक्वल टू ज़ीरो। जब rs अशून्य होता है, तो नीचे दिया गया रूप rd में 1 लिखता है, और जब rs शून्य होता है तो यह 0 लिखता है।

snez rd, rs

snez एक स्यूडो-इंस्ट्रक्शन है, seqz की तरह, और असेंबलर इसे एक वास्तविक इंस्ट्रक्शन में विस्तारित करता है। वह इंस्ट्रक्शन पूछता है कि क्या शून्य मान से कम है।

sltu rd, zero, rs

यह शून्य के अलावा किसी भी मान के लिए सत्य है। जब आप snez लिखते हैं तो असेंबलर अनुवाद करता है।

किसी गणना से अक्सर ऐसा मान उत्पन्न होता है जिसका एकमात्र उपयोगी गुण यह है कि वह शून्य है या नहीं, जैसे शेष आइटमों की गिनती, दो चीज़ों के बीच का अंतर या फ़्लैगों का समूह। snez उस मान को 1 में बदल देता है जब वह अशून्य हो और 0 में जब वह शून्य हो, जो हाँ या ना उत्तर लौटाने वाले फ़ंक्शन का मानक रूप है।

RISC-V मैनुअल snez को sltu के लिए एक असेंबलर स्यूडोइंस्ट्रक्शन के रूप में परिभाषित करता है जिसमें x0 पहला स्रोत होता है। यह rd को 1 पर सेट करता है यदि rs2 शून्य के बराबर नहीं है और अन्यथा 0 पर।

snez असमानता का परीक्षण करने के लिए XOR के साथ काम करता है। दो मानों का XOR करें, जो केवल तभी अशून्य परिणाम देता है जब वे भिन्न हों, फिर जब वे भिन्न हों तो 1 प्राप्त करने के लिए snez लागू करें। seqz के साथ, यह समान और असमान के लिए सही या गलत परिणाम उत्पन्न करता है, जिसे आप बिना जंप के and और or के साथ बड़ी शर्तों में जोड़ सकते हैं।

विस्तृत होता है

sltu rd, zero, rs

असेंबलर इस छद्म-निर्देश को ऊपर सूचीबद्ध वास्तविक निर्देश या निर्देशों से बदल देता है।

उदाहरण

li t0, 5
snez t1, t0       # t1 = 1