beqzछद्म

beqz

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

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

विवरण

beqz तब शाखा लेता है जब किसी रजिस्टर में शून्य हो। नाम का अर्थ है शून्य के बराबर होने पर शाखा लेना। नीचे दिए गए रूप में, जब rs शून्य होता है तो प्रोसेसर लेबल किए गए स्थान पर कूद जाता है और अन्यथा अगले निर्देश पर जारी रहता है।

beqz rs, label

beqz एक छद्म-निर्देश है, एक पठनीय नाम जिसे असेंबलर वास्तविक निर्देश में फिर से लिखता है। यह नीचे दिए गए निर्देश में बदल जाता है, जो रजिस्टर की तुलना zero से करता है, वह विशेष रजिस्टर जिसमें हमेशा 0 होता है।

beq rs, zero, label

beqz सबसे सामान्य तुलना लिखने का एक छोटा तरीका देता है। शाखा और लेबल कैसे काम करते हैं, यह देखने के लिए beq देखें।

शून्य निम्न-स्तरीय कोड में अक्सर आता है, यही कारण है कि यह संक्षिप्त रूप मौजूद है। एक शून्य बाइट टेक्स्ट के अंत को चिह्नित करता है। शून्य ही सामान्य संकेत है कि कोई ऑपरेशन सफल हुआ। शून्य एक खाली या अनुपस्थित मान को भी दर्शाता है, और काउंटडाउन लूप शून्य पर समाप्त होते हैं। शून्य परीक्षण का उपयोग स्ट्रिंग के अंत का पता लगाने के लिए एक अक्षर लोड करने के बाद, सफलता के पथ पर जाने के लिए लौटाई गई स्थिति पर और लूप समाप्त करने के लिए काउंटर पर किया जाता है।

RISC-V मैनुअल एक कारण बताता है कि इसकी शाखाएँ एक रजिस्टर की तुलना शून्य से करने के बजाय दो रजिस्टरों की तुलना क्यों करती हैं। शून्य के विरुद्ध तुलना के लिए एक गैर-तुच्छ सर्किट विलंब की आवश्यकता होती है, इसलिए वे लगभग अंकगणितीय परिमाण तुलनाओं जितनी ही महंगी होती हैं। इसलिए beqz एक छद्म-निर्देश है जो zero के साथ beq का उपयोग करता है।

नीचे दी गई पहली पंक्ति दूसरी की तुलना में अधिक स्पष्ट पढ़ी जाती है, जो शून्य के साथ तुलना को स्पष्ट रूप से लिखती है।

beqz t0, done
beq t0, zero, done

छद्म-निर्देश पठनीयता के लिए मौजूद हैं, और उनसे उत्पन्न मशीन कोड समान होता है। इसका विपरीत bnez है, जो तब शाखा लेता है जब कोई मान शून्य न हो।

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

beq rs, zero, label

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

उदाहरण

li t0, 0
beqz t0, done   # t0 == 0, so jump to 'done'