seqzछद्म

seqz

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

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

विवरण

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

seqz rd, rs

आउटपुट 1 या 0 होता है, जो बताता है कि मान शून्य है या नहीं।

seqz एक स्यूडो-इंस्ट्रक्शन है: एक पठनीय नाम जिसे असेंबलर एक वास्तविक इंस्ट्रक्शन में बदल देता है। परिणाम नीचे दिया गया इंस्ट्रक्शन है, जो पूछता है कि मान 1 से कम है या नहीं।

sltiu rd, rs, 1

अहस्ताक्षरित संख्याओं में, 0 ही एकमात्र मान है जो 1 से कम है। आप seqz लिखते हैं, और असेंबलर अनुवाद करता है।

कोई भी RISC-V इंस्ट्रक्शन यह नहीं पूछता कि दो मान बराबर हैं या नहीं, इसलिए seqz का उपयोग समानता परीक्षण बनाने के लिए किया जाता है। दोनों मानों पर XOR करें, जो मेल खाने पर शून्य देता है और भिन्न होने पर गैर-शून्य परिणाम देता है, फिर उस परिणाम पर seqz लागू करें। 1 का अर्थ है कि मूल मान बराबर थे। xor पृष्ठ बताता है कि XOR समानता का पता क्यों लगाता है।

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

seqz सत्य या असत्य मान की भावना को भी उलट देता है। 0 रखने वाला रजिस्टर 1 बन जाता है, और कोई भी गैर-शून्य मान 0 बन जाता है। उत्तर एक साधारण संख्या है, इसलिए इसे आगे के अंकगणित में डाला जा सकता है, उदाहरण के लिए किसी शर्त पर किसी मान को शून्य करने के लिए उससे गुणा करना। इसका समकक्ष snez है, जो गैर-शून्य के लिए परीक्षण करता है।

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

sltiu rd, rs, 1

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

उदाहरण

li t0, 0
seqz t1, t0       # t1 = 1