2011-11-28 20 views
7

एमआईपीएस में, la निर्देश lui और ori में अनुवाद करता है। हालांकि, मार्स सिम्युलेटर ऐसा नहीं लगता है। जब मैं निम्नलिखित मशीन कोड डंप:एमआईपीएस "ला" छद्म instruciton

.text 
    la $a0, array 
    la $a1, array_size 
    lw $a1, 0($a1) 

.data 
    array: .word 0:10 
    array_size: .word 10 
    message: .asciiz "The sum of numbers in array is: " 

मैं:

00100000000001000010000000000000 
00100000000001010010000000101000 
10001100101001010000000000000000 

जाहिर बात है। यह एक निर्देश के रूप में la डंपिंग है। मार्स क्या करता है? मैं la को lui और ori के रूप में कैसे समझ सकता हूं?

धन्यवाद,

उत्तर

8

यहाँ क्या हो रहा है कि अपने कोडांतरक addi $<dest>, $0, <value> के रूप में इन la रों संकलन किया गया है। दो-निर्देश अनुक्रम केवल उन मानों के लिए जरूरी है जिन्हें 16-बिट तत्काल में प्रदर्शित नहीं किया जा सकता है; आप जिस मान का उपयोग कर रहे हैं वह 0x2000 और 0x2028 जैसा दिखता है, इसलिए वे एक ही निर्देश में फिट होते हैं।

मैं इसे कैसे व्याख्या lalui और ori के रूप में कर सकते हैं?

बड़े स्थिरांक लोड करें। :) आपके असेंबलर के पास पूर्ण अनुक्रम के उपयोग को मजबूर करने का विकल्प भी हो सकता है, भले ही यह अनावश्यक हो।

संबंधित मुद्दे