negछद्म

neg

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

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

विवरण

neg किसी संख्या का चिह्न उलट देता है: 5, -5 हो जाता है, और -5, 5 हो जाता है। यह नाम negate का संक्षिप्त रूप है। नीचे दिया गया रूप source रजिस्टर rs के negation को destination रजिस्टर rd में रखता है।

neg rd, rs

neg एक pseudo-instruction है। एक assembler किसी pseudo-instruction को, जो एक पठनीय नाम है, प्रोसेसर के सामने आने से पहले एक या अधिक वास्तविक instructions में बदल देता है। neg नीचे दी गई instruction बन जाती है, जो संख्या को zero से घटाती है, वह विशेष रजिस्टर जो हमेशा 0 रखता है।

sub rd, zero, rs

0 घटा x बराबर -x, इसलिए यह negation उत्पन्न करता है। RISC-V इस तरह subtraction और zero रजिस्टर का पुनः उपयोग करके अपने वास्तविक instructions के समूह को छोटा रखता है।

ऋणात्मक संख्याओं की सीमा धनात्मक सीमा से एक कदम आगे तक फैली होती है। यह लगभग -2.1 अरब तक पहुँचती है और केवल लगभग +2.1 अरब तक। सबसे ऋणात्मक संख्या का कोई धनात्मक समकक्ष नहीं होता, इसलिए उसका negation करने पर यह wrap होकर वही संख्या देती है। जो कोड absolute values की गणना करता है उसे इस स्थिति का ध्यान रखना चाहिए।

RISC-V manual sub को rs1 से rs2 के subtraction के रूप में परिभाषित करता है और रजिस्टर x0, जिसे यहाँ zero कहा गया है, को एक ऐसे मान पर hardwired बताता है जिसके सभी बिट 0 हैं। x0 से कोई मान घटाने पर उसका ऋणात्मक मान प्राप्त होता है, और यही वह रूप है जो neg बन जाता है।

उदाहरण 5 को -5 में negate करता है। एक branch के साथ संयुक्त, जो संख्या के पहले से धनात्मक होने पर neg को छोड़ देता है, यह सामान्य दो-instruction वाला absolute value उत्पन्न करता है।

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

sub rd, zero, rs

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

उदाहरण

li t0, 5
neg t1, t0       # t1 = -5