bltzछद्म

bltz

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

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

विवरण

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

bltz rs, label

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

blt rs, zero, label

तुलना साइन्ड है, इसलिए रजिस्टर में मौजूद 32 बिट्स को एक ऐसी संख्या के रूप में पढ़ा जाता है जो ऋणात्मक हो सकती है। एक शाखा दो रजिस्टरों की तुलना करती है और निर्देश में लिखे गए स्थिरांक को नहीं ले सकती, इसीलिए 0 zero रजिस्टर से आता है। दो मानों की तुलना करने वाली शाखाओं के लिए blt देखें और लेबल कैसे काम करते हैं इसके लिए beq देखें।

यह जाँचने के लिए कि कोई मान शून्य से कम है या नहीं, मान को एक रजिस्टर में रखें और उस पर bltz का उपयोग करें। सामान्य मामले हैं किसी घटाव के परिणाम का परीक्षण करना यह देखने के लिए कि क्या वह शून्य से नीचे गया, और किसी फ़ंक्शन परिणाम का परीक्षण करना जो त्रुटि को ऋणात्मक संख्या के रूप में बताता है।

sub t0, t1, t2
bltz t0, smaller

ऊपर की पंक्तियाँ तब smaller पर जाती हैं जब घटाव का परिणाम शून्य से नीचे हो। ठीक 0 का परिणाम ऋणात्मक नहीं है और अगले निर्देश पर जारी रहता है। विपरीत शाखा, जो शून्य को भी लेती है, bgez है।

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

blt rs, zero, label

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

उदाहरण

li t0, -3
bltz t0, done   # t0 < 0, so jump to 'done'